Hibernate批量添加与更新

<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;
	}



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值