欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

特殊用法

程序员文章站 2022-05-19 08:49:09
...
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();
		}
	}
相关标签: insert