`
liangjian103
  • 浏览: 179397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

事务处理,批量更新

阅读更多

今天使用Spring的batchUpdate批量更新的时候,发现它并没有事务处理,这里我写了个方法来做一下事务处理,嘿嘿!

 

	JdbcTemplate jt = (JdbcTemplate) InitSpring.getInstance().contex.getBean("jdbcTemplate");
	TransactionTemplate transactionTemplate = (TransactionTemplate) InitSpring.getInstance().contex.getBean("transactionTemplate");
 
	/**
	 * 事务处理,批量更新List<String> String是SQL语句
	 * 
	 * @return
	 */
	public boolean batchUpdate(final List<String> sqlList) {
		try {
			transactionTemplate.execute(new TransactionCallback() {
				public Object doInTransaction(TransactionStatus status) {
					for (String sql : sqlList) {
						jt.update(sql);
					}
					return null;
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

 

Spring的配置文件:

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	
	<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
      <property name="transactionManager">
        <ref bean="transactionManager"/>
      </property>
      <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"></property>
  	</bean>

 测试类:

		System.out.println("SQL语句装载完毕,开始导入向数据库导入数据……");
		this.batchUpdate(list);
		System.out.println("导入完毕!");
 
分享到:
评论

相关推荐

    在Hibernate中处理批量更新和批量删除

    本文将深入探讨在Hibernate中处理批量更新和批量删除的策略,以及如何优化这些操作,以提高数据库操作的效率。 ### 批量更新的常规方法 在Hibernate中,最直观的批量更新方式是通过循环遍历查询结果集,并对每个...

    C# sqlite 批量更新及性能测试

    本文将深入探讨如何在C#中进行SQLite批量更新操作,并对其进行性能测试,以便优化数据库处理效率。 首先,我们需要引入SQLite的.NET数据提供程序,这通常通过NuGet包管理器来实现。安装`System.Data.SQLite`库后,...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理大量数据时,能够显著提升效率。本文将深入探讨如何在 Mybatis Plus 中自定义批量插入和批量更新,并根据唯一索引来确保数据的唯一性。 ...

    ASPNET批量更新

    你可以创建一个存储过程,接收参数数组,然后在存储过程中处理批量更新。 2. DataTable与DataAdapter: 另一种批量更新策略是利用`DataTable`和`DataAdapter`。首先,将数据加载到`DataTable`中,进行必要的修改,...

    ORACLE批量更新四种方法.txt ORACLE批量更新四种方法.txt

    适用于数据量不大且无需事务处理的情况。 #### 三、方法二:使用PL/SQL游标循环 **定义:** 使用PL/SQL语言中的游标和循环结构,逐条记录地读取并更新数据。 ```plsql declare l_varID varchar2(20); l_...

    使用事务批量修改数据库

    事务处理是数据库管理系统(DBMS)的一个核心功能,它支持将一组相关的操作作为一个不可分割的工作单位来执行。如果事务中的所有操作都成功,则整个事务被提交;如果有任何操作失败,则事务被回滚,从而撤销之前的所有...

    批量更新历史数据 每10000提交一次

    本主题聚焦于“批量更新历史数据每10000提交一次”的实践方法,这涉及到数据库操作优化、事务管理以及代码实现等技术细节。 首先,批量更新是为了避免频繁的小规模数据库交互,因为每次交互都会带来一定的开销,如...

    EF批量更新、批量插入、 批量删除使用的是EFUtilities,免费的操作简单,速度超级快

    批量更新同样是一个重要的优化点。在EF中,更新数据通常涉及到查询单个实体,修改其属性,然后保存更改。这在处理大量需要更新的记录时效率低下。EFUtilities提供了`UpdateBulk()`方法,允许开发者传递一组已经更新...

    批量更新两种方法实践

    在这个主题中,我们通常会遇到两种主要的方法:使用SQL语句批量更新和利用编程语言提供的数据处理库进行批量更新。 首先,SQL批量更新是最直接的方式,适用于对数据库的操作有直接控制的情况。例如,可以编写一个...

    MongoDB 批量插入及更新

    因此,MongoDB提供了批量操作的功能,能够一次性处理多个文档的插入或更新,显著提高操作效率。 #### 三、MongoDB批量操作实现方法 ##### 3.1 使用MongoDB.Driver库 在.NET Core中,可以通过`MongoDB.Driver`库来...

    Oracle中多表关联批量插入批量更新与批量删除操作

    在实际应用中,可以通过存储过程、事务处理或编程语言(如Java)的批处理功能来实现更复杂的批量操作逻辑。 总的来说,理解并熟练掌握Oracle中多表关联的批量插入、更新和删除操作,能够有效优化数据库性能,提高...

    JDBC批量插入 更新 删除等操作

    综上所述,JDBC的批量操作包括批量插入、批量更新、批量删除等,它们都依赖于`PreparedStatement`的批量处理能力。通过合理的使用这些批量操作,可以显著提高Java应用程序在处理大量数据时的性能和效率。

    SQL SERVER数据库批量更新程序 1.0.0.35

    在这个批量更新程序中,ADO.NET扮演了核心角色,负责与SQL SERVER建立连接,执行批量更新操作,并管理事务以确保数据的一致性。 "SQLSERVER"是指Microsoft的SQL Server数据库管理系统,广泛应用于企业级数据存储和...

    Linq2SQL批量更新

    批量更新不仅减少了网络往返次数,还降低了数据库的事务开销,提升了整体系统性能。 实现Linq2SQL批量更新的方法通常包括以下步骤: 1. 创建LINQ to SQL 数据上下文(DataContext):这是与数据库交互的基础,它...

    数据的批量处理

    3. 数据一致性:批量处理通常在事务控制下进行,保证了数据处理的完整性和一致性。 4. 定时任务:适合于周期性的数据维护,如日志分析、数据备份等。 二、批量处理的应用场景 1. 数据导入导出:在不同系统间迁移...

    C#与ADO.NET对网格数据的批量更新

    在.NET框架中,C#与ADO.NET的结合是进行数据库操作的强大工具,特别是在处理大量数据时,批量更新功能显得尤为重要。本主题将深入探讨如何利用C#和ADO.NET实现网格数据的批量更新,并介绍其中一种自定义更新逻辑的...

    使用事务实现更新多个数据表

    3. **隔离性(Isolation)**:在事务处理期间,其他事务不能看到其未完成的操作,防止了并发操作带来的数据冲突。 4. **持久性(Durability)**:一旦事务提交,其结果就是永久的,即使系统故障也不会丢失。 在...

    SqlDataAdapter.Update批量更新.txt

    ### SqlDataAdapter.Update批量更新知识点详解 #### 一、概述 在.NET Framework中,`SqlDataAdapter` 是一个非常重要的数据访问组件,它提供了从数据库检索数据并填充到内存中的`DataSet`或`DataTable`的能力,同时...

    iOS中FMDB事务实现批量更新数据

    iOS中FMDB事务实现批量更新数据是一种高效的数据更新方式,通过使用FMDB库和SQLite数据库,开发者可以实现批量更新数据,提高数据处理的效率和性能。在本文中,我们将详细介绍iOS中FMDB事务实现批量更新数据的方法和...

    Delphi批量更新SQL数据库内容..rar

    批量更新SQL数据库是指一次处理多条记录,而不是逐条进行,这在处理大量数据时能显著提高效率。在Delphi中,通过编写SQL语句或使用数据库组件,可以实现这一目标。 1. **FireDAC组件**:FireDAC是Delphi中用于...

Global site tag (gtag.js) - Google Analytics