关闭

使用ibatis编程式事物,不回滚

标签: ibatis编程insertdaodeletesql
1146人阅读 评论(2) 收藏 举报
分类:
在dao中写
try{
   sqlMapClient.startTransaction();
   //执行语句(多个insert,update,delete)
   sqlMapClient.commitTransaction();
  }finally{
   sqlMapClient.endTransaction();
  }
为什么不回滚
我来帮他解答
检举 | 2011-3-17 11:45
满意回答
发生异常才会回滚,不是这样配的,我写给你看
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(); 也要捕获异常吗?

回答

是的,结束事务也会出现异常的.比如说,万一在结束事务瞬间停电了呢?不就出现异常了.当然还有很多其他的事件可以触发异常
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13532次
    • 积分:232
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:18篇
    • 译文:0篇
    • 评论:3条
    最新评论