使用ibatis编程式事物,不回滚
在dao中写try{sqlMapClient.startTransaction();//执行语句(多个insert,update,delete)sqlMapClient....
在dao中写
try{
sqlMapClient.startTransaction();
//执行语句(多个insert,update,delete)
sqlMapClient.commitTransaction();
}finally{
sqlMapClient.endTransaction();
}
为什么不回滚 展开
try{
sqlMapClient.startTransaction();
//执行语句(多个insert,update,delete)
sqlMapClient.commitTransaction();
}finally{
sqlMapClient.endTransaction();
}
为什么不回滚 展开
1个回答
展开全部
发生异常才会回滚,不是这样配的,我写给你看
try {
sqlMapClient.startTransaction();
sqlMapClient.insert("addGoods", goods);
...你所写其他sql语句
sqlMapClient.commitTransaction();
} catch (SQLException e) {
e.printStackTrace();
goods.setRespCode("1");
goods.setRespMsg("添加商品失败:提交事务出现异常,事务回滚");
} finally {
try {
sqlMapClient.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
goods.setRespCode("1");
goods.setRespMsg("添加商品失败:结束事务出现异常,事务回滚");
}
}
try {
sqlMapClient.startTransaction();
sqlMapClient.insert("addGoods", goods);
...你所写其他sql语句
sqlMapClient.commitTransaction();
} catch (SQLException e) {
e.printStackTrace();
goods.setRespCode("1");
goods.setRespMsg("添加商品失败:提交事务出现异常,事务回滚");
} finally {
try {
sqlMapClient.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
goods.setRespCode("1");
goods.setRespMsg("添加商品失败:结束事务出现异常,事务回滚");
}
}
追问
sqlMapClient.endTransaction(); 也要捕获异常吗?
追答
是的,结束事务也会出现异常的.比如说,万一在结束事务瞬间停电了呢?不就出现异常了.当然还有很多其他的事件可以触发异常
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询