我写了一个插入批量数据的程序。为了加快速度,我在流程中提交了事务。 是否可以安全地多次调用startTransaction和commitTransaction并只调用一次endTransaction?
try {
sqlMap.startTransaction();
// Do some work.
sqlMap.commitTransaction();
sqlMap.startTransaction();
// Do some work.
sqlMap.commitTransaction();
sqlMap.startTransaction();
// Do some work.
sqlMap.commitTransaction();
} catch (SQLException e) {
e.printStackTrace();
throw new MyException();
} finally {
try {
sqlMap.endTransaction();
}
catch (SQLException e) {
e.printStackTrace();
throw new MyException();
}
}
感谢。
答案 0 :(得分:0)
在iBatis中,startTransaction,commitTransaction,endTransaction应按照规定的顺序调用一次。如果多次调用startTransaction和commitTransaction而不调用endTransaction,则将耗尽db连接并获取错误。