Hibernate 批量插入数据,跳过重复数据

前两天接到学校的一个项目,做学校的一个校工会信息管理系统,遇到一个需求:在网页管理界面上操作,从Excel读取N条数据,插入到数据库中,相同工号的数据无需插入.

想用三大框架来做这个系统,但是遇到一个问题,Transaction遇到异常会回滚,并中断插入操作,后续的数据将无法插入到数据库,一时间没找到合适的方法来解决,.于是乎只好用原生SQL语句来操作.

解决方法:

先用JXL读取Excel,然后利用事务+createSQLQuery插入数据到数据库,示例代码如下:

@Test
	public void test() {
		Session session = HibernateSessionFactory.getSession();
		//执行事务
		Transaction tx = session.beginTransaction();
		for (int i = 0; i < 100; i++) {
			//sql作用:忽略相同数据
			session.createSQLQuery(
					"insert ignore into test values(" + i + ",'a')")
					.executeUpdate();//注意,插入要加上executeUpdate,否则插入不成功
		}
		//提交事务
		tx.commit();

	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值