Hibernate 中用JDBC批量新增记录:
public int insertBatch(final List list){ return (Integer) getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { if(null==list || 0==list.size()){ return 1; } Connection conn = session.connection(); conn.setAutoCommit(false); PreparedStatement ps = null; String sql="INSERT INTO GoodsValue"+ "(iinStorageDetailId,ddailyDate,fpresentPrice,icurrencyId," + "dcreateDate,icreateUser,istatus,smemo)"+ " VALUES(?,?,?,?,?,?,?,?)"; ps = conn.prepareStatement(sql); int size = list.size(); for(int i =0 ;i<size;i++){ InStorageDetail isd = (InStorageDetail) list.get(i); modelToData(ps, isd); ps.addBatch(); if(i%20==0){ ps.executeBatch();//每20条执行物理插入一次,返回int[] conn.commit(); } } ps.executeBatch();//余下不够20的插入,返回int[] conn.commit(); conn.setAutoCommit(true); return 0; }
作者:很有意思
出处:http://www.cnblogs.com/chen-lei
关于作者:扛过枪,没机会打仗,现为程序员集团军一名现役程序员
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如有问题,可以通过chenlei65368@sohu.com 联系我,非常感谢。