ibatis的批处理
(1)spring模式:尽管spring已经配置了事务,但以下代码中还是要设置事务,不然batch不会起作用;另外这里虽然设了一下事务处理,但对全局事务并不会造成影响;
注:不启用事务将建立多次连接,这表示batch没起作用,建立事务后一次连接就搞定了.
public void batchAddExamlog(List examlogList) throws SQLException{
SqlMapClient smc=this.getSqlMapClient();
try {
smc.startTransaction();
smc.startBatch();
for (Iterator iter = examlogList.iterator(); iter.hasNext();) {
Examlog log = (Examlog) iter.next();
smc.update("insertExamlog", log);
}
smc.executeBatch();
} catch (Exception e) {
// TODO: handle exception
}finally{
smc.commitTransaction();
smc.endTransaction();
}
}
(2)直接采用回调函数设置
public void batchAddExamlog2(List examlogList){
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.startBatch();
executor.update("insertSomething", "myParamValue");
executor.update("insertSomethingElse", "myOtherParamValue");
executor.executeBatch();
return null;
}
});
}
ibatis的批处理
最新推荐文章于 2018-08-26 21:20:57 发布