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

猿始社会 发布于 2016/09/08 14:49
阅读 633
收藏 0

写了一个保存的方法,需要用到事务,所以就加了个回滚操作,用的是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

加载中
0
JFinal
JFinal
   return false 或者有异常抛出都会回滚事务,return true 才会提交事务,然后 Db.tx 方法是有返回值的,可以接收到
0
JFinal
JFinal
    如果想让 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);



猿始社会
猿始社会
@JFinal 谢谢,解决了0
返回顶部
顶部