return Db.tx(new IAtom(){ }) 事务回滚在什么情况能通过,为什么 return true 方法能执行,return false 就不能执行了?

发布于 2021-12-01 16:04:55 字数 482 浏览 806 评论 3

写了一个保存的方法,需要用到事务,所以就加了个回滚操作,用的是jfinal框架。

return Db.tx(new IAtom(){ }) 事务回滚在什么情况能通过,为什么 return true 方法能执行,return false 就不能执行了?而这个方法里需要 return false。求解,在线等,挺急的。

return Db.tx(new IAtom(){



@Override
public boolean run() throws SQLException {
// TODO Auto-generated method stub
return false;
}

});

@jfinal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

把回忆走一遍 2021-12-02 15:33:54

@JFinal 谢谢,解决了
0

等你爱我 2021-12-02 13:34:43

    如果想让 run 方法中往外层传递变量,可以在外层定义一个 final 修饰的容器类的对象,然后在里面用一下即可,大致如下:

final Ret ret = Ret.create();
Db.tx(new IAtom() {
  public boolean run() {
    if (...) {
      ret.put(k1, v1);
    } else {
      ret.put(k2, v2);
    }
    return true;
  }
// 这里就可以得到 ret 中的数据了
Xxx v1 = ret.get(k1);

拍不死你 2021-12-02 10:20:50

   return false 或者有异常抛出都会回滚事务,return true 才会提交事务,然后 Db.tx 方法是有返回值的,可以接收到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文