Hibernate批量添加与更新

原创 2016年08月30日 18:22:07
<pre name="code" class="java">	/**
	 * 批量insertIDMC表
	 * @param entityType
	 * @return
	 */
	public OperationResult batchInsert(final List<EntityIdName> id2Names){
		if(id2Names != null && id2Names.size() > 0){
			this.getSession().doWork(new Work() {
				@Override
				public void execute(Connection connection) throws SQLException {
					String sql = "insert into entity_id_name (entitytypeid,entityid,entityname,tenantId) values (?,?,?,?)";
					final PreparedStatement stmt = connection.prepareStatement(sql);
					for (final EntityIdName idName : id2Names) {
						stmt.setLong(1, idName.getEntityTypeId());
						stmt.setLong(2, idName.getEntityId());
						stmt.setString(3, idName.getEntityName());
						stmt.setLong(4, idName.getTenantId());
						stmt.addBatch();
					}
					log.info("开始批量执行"+id2Names.size()+"条SQL语句["+sql+"]...");
					Long t1 = System.currentTimeMillis();
					stmt.executeBatch();
					Long t2 = System.currentTimeMillis();
					log.info("执行完毕,共耗时:" + (t2-t1) + "毫秒");
				}
			});
		}
		return OperationResult.SUCESS;
	}
	
	/**
	 * 批量insertIDMC表
	 * @param entityType
	 * @return
	 */
	public OperationResult batchUpdate(final List<EntityIdName> id2Names){
		if(id2Names != null && id2Names.size() > 0){
			this.getSession().doWork(new Work() {
				@Override
				public void execute(Connection connection) throws SQLException {
					String sql = "UPDATE entity_id_name SET entityname = ? WHERE entitytypeid = ? AND entityid = ?";
					final PreparedStatement stmt = connection.prepareStatement(sql);
					for (final EntityIdName idName : id2Names) {
						stmt.setString(1, idName.getEntityName());
						stmt.setLong(2, idName.getEntityTypeId());
						stmt.setLong(3, idName.getEntityId());
						stmt.addBatch();
					}
					log.info("开始批量执行"+id2Names.size()+"条SQL语句["+sql+"]...");
					Long t1 = System.currentTimeMillis();
					stmt.executeBatch();
					Long t2 = System.currentTimeMillis();
					log.info("执行完毕,共耗时:" + (t2-t1) + "毫秒");
				}
			});
			
		}
		return OperationResult.SUCESS;
	}



                    
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Hibernate 批量更新

hibernate处理批量更新和批量删除 分类: javaEE2012-03-20 11:13 6200人阅读 评论(0) 收藏 举报 hibernatesession数据库jdb...

Hibernate的批量更新与删除(&&JDBC)

一,批量更新(两种方式) 1,使用Hibernate直接进行批量更新 (1)方式1:(Hibernate的HQL直接支持update/delete的批量更新语法) package com.anlw...
  • an_2016
  • an_2016
  • 2016年06月26日 12:00
  • 1738

Hibernate 批量更新数据

进行批量更新时,如果一下子把所有对象加载到session的缓存中,然后再进缓存中一一更新它们,显然是不可取的,为了解决这一问题,可以使用滚动的结果集 org.hibernate.Scrollable...

hibernate批量删除和更新数据

转载自:http://blog.csdn.net/yuhua3272004/article/details/2909538 Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻...

Hibernate 批量插入、更新与删除

批量插入 在项目的开发过程之中,由于项目需求,我们常常需要把大批量的数据插入到数据库。数量级有万级、十万级、百万级、甚至千万级别的。如此数量级别的数据用Hibernate做插入操作,就可能会发...

Hibernate批处理操作优化 (批量插入、更新与删除)

问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载...

Hibernate批处理操作优化 (批量插入、更新与删除)

问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU...

Hibernate批处理操作优化 (批量插入、更新与删除)

问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载...

Hibernate批处理操作优化 (批量插入、更新与删除)

问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU...
  • litoupu
  • litoupu
  • 2013年11月28日 16:26
  • 1327

Hibernate 数据的批量插入、更新和删除

4.2  Hibernate的批量处理Hibernate完全以面向对象的方式来操作数据库,当程序里以面向对象的方式操作持久化对象时,将被自动转换为对数据库的操作。例如调用Session的delete(...
  • gaozhlzh
  • gaozhlzh
  • 2011年06月23日 09:58
  • 38403
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate批量添加与更新
举报原因:
原因补充:

(最多只允许输入30个字)