特殊用法
程序员文章站
2022-03-22 08:33:39
...
public void batchInsert(Sheet sheet) throws SQLException {
Map<String, Object> map = null;
try {
// 开启手动事务,关闭自动事务
xjCommiBillReportDao.getSqlMapClient().startTransaction();
// 每执行executeBatch方法前必须先 startBatch一下。
xjCommiBillReportDao.getSqlMapClient().startBatch();
for (int i = 1, len = sheet.getLastRowNum(); i < len; i++) {
map = row2Map(sheet.getRow(i));
if (map == null)
return;
xjCommiBillReportDao.insert(map);
if (i % 5000 == 0) {
// 数据量达到5000条时,批量插入数据库。
xjCommiBillReportDao.getSqlMapClient().executeBatch();
// 批量插入数据库后,必须再次开启startBatch,不然下次执行的executerBatch会失效,不会做批量插入数据库事件
xjCommiBillReportDao.getSqlMapClient().startBatch();
}
}
} finally {
xjCommiBillReportDao.getSqlMapClient().executeBatch();
// 关闭手动事务,开启自动事务
xjCommiBillReportDao.getSqlMapClient().endTransaction();
}
}
上一篇: 提升幸福感的100件事
下一篇: 经过整理的一些dos/bat批处理教程
推荐阅读