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 联系我,非常感谢。

浙公网安备 33010602011771号