java jfinal 回滚_JFinal 基本应用 --事务回滚

JFinal事务回滚

1.当时需要用到事务回滚,但是看到网上只有问题,没有真实的到底怎么用法。

2.我看了一下文档,结合了网上的大神的博客。

第一种方法:

Db.tx(new IAtom(){

@Override

public boolean run() throw SQLException{

//在这里写要执行的操作,在执行的过程中如果有异常将回滚,如果return false 就也回滚

return true;

}

});

我的代码:

public static void clearScores()  {

// TODO Auto-generated method stub

Db.tx(new IAtom() {

//在执行run的过程中,如果有异常将回滚,或者return false 将回滚

@Override

public boolean run() throws SQLException {

//获取所有的到期用户

List assocs = Associator.dao.getAssocsOfScoresExpire();

for( int i = 0  ; i < assocs.size() ; i ++ ){

Associator assoc = assocs.get(i);

//在积分明细中写入记录存入

Map map = new HashMap();

map.put("ASSOC_ID",assoc.get(Associator.COLLUMNS.ASSOC_ID));

map.put("CREATED_BY","AUTO");

map.put("DEAL_TYPE","扣除");

map.put("ASSOC_SCORE",assoc.get(Associator.COLLUMNS.ASSOC_SCORE));

map.put("DEAL_REASON","积分到期");

AssociatorScore.dao.saveScore(map);

//修改对应的积分和会员的最近签到时间

assoc.set(Associator.COLLUMNS.ASSOC_SCORE, 0);

assoc.set(Associator.COLLUMNS.FIRST_SIGN_TIME, Calendar.getInstance().getTime());

assoc.set(Associator.COLLUMNS.MODIFIED_AT, Calendar.getInstance().getTime());

//测试能否回滚

/*if( i == 1)

assoc.remove("ID");*/

assoc.update();

}

return true;

}

});

}

}

还有一种方式:

声明事务方式:在方法前声明@Before(Tx.class)

注:我试了很多次都不管用,最终发现没有设置拦截器。文档中写的比较清楚。

还有我觉得文档真心的整理的不够,不过实现基础的功能还是可以的。

JFinal的详细介绍:请点这里

JFinal的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值