码迷,mamicode.com
首页 > 数据库 > 详细

JFinal DB.tx()事务

时间:2016-10-14 23:21:11      阅读:993      评论:0      收藏:0      [点我收藏+]

标签:

JFinal中有个封装好的事务应用,用起来非常方便简单。

写法1:

Db.tx(new IAtom(){

  @Override

  public boolean run() throw SQLException{

  //在这里写要执行的操作,操作结果result为boolean值
  return result;
  } });

result值为true则操作成功,为false则回滚。

事务DB.tx()本身也返回一个boolean值,表示最终操作结果是否成功,true为成功,false失败。

 

写法2:

在方法前声明@Before(Tx.class)

 

今天部门开会重构代码,自己写的一部分代码被拿出来重构,被高手一重构才发现自己代码写的有多烂,技术不说,逻辑都差很远,学习之路漫漫啊。

public boolean saveData(String dataId, DataModel data) {
  return Db.tx(new IAtom() { @Override public boolean run() throws SQLException { boolean saveDataResult = true; for (DataModel data : dataList) { //循环遍历dataList将所有data插入数据库 saveDataResult = saveDataResult && DataSrv.srv.saveData(data); //将所有结果与,只要有一条失败就跳出循环,返回false if (!saveDataResult) { break; } } saveDataResult = saveDataResult && DataSrv.srv.saveDataIds(dataId);在关联表中插入数据 return saveDataResult; } });
}

这是一个往列式存储数据库存储新增表单数据的方法,表单中每一项都需要在数据库中存一条数据,同时还要将dataId插入另一个表中才算新增成功,因此saveDataResult为所有插入操作的与,只要有一条失败就返回false,就会回滚。最后这个方法返回操作的结果,即表单提交成功或失败。

JFinal DB.tx()事务

标签:

原文地址:http://www.cnblogs.com/ltchu/p/5962264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!