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<Associator> 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 DB.tx()事务回滚及lambda表达式应用
JFinal DB.tx()事务回滚 在要往数据库操作多条数据时,就需要用到事务,JFinal中有封装好的事务应用 写法: Db.tx(new IAtom(){ @Override public bo ...
- SQL 事务回滚
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服 ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- 【Java EE 学习 19】【使用过滤器实现全站压缩】【使用ThreadLocal模式解决跨DAO事务回滚问题】
一.使用过滤器实现全站压缩 1.目标:对网站的所有JSP页面进行页面压缩,减少用户流量的使用.但是对图片和视频不进行压缩,因为图片和视频的压缩率很小,而且处理所需要的服务器资源很大. 2.实现原理: ...
- SqlServer事务回滚(2)
SQL Server 2008中SQL应用系列--目录索引 SQL事务 一.事务概念 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是 ...
- Spring @Transactional ——事务回滚
工作原理运行配置@Transactional注解的测试类的时候,具体会发生如下步骤1)事务开始时,通过AOP机制,生成一个代理connection对象,并将其放入DataSource实例的某个与Dat ...
- MySQL(22):事务管理之 事务回滚
1. 在操作事务的时候,如果发现当前事务操作是不合理的,此时只要还没有提交事务,就可以通过回滚取消当前事务,接下来就针对事务的回滚进行详细讲解. 2. 为了演示回滚操作,在上一个笔记案例基础之上,此时 ...
- mysql数据库 索引 事务和事务回滚
mysql索引 索引相当于书的目录优点:加快数据的查询速度缺点:占物理存储空间,添加,删除,会减慢写的速度 查看表使用的索引 mysql> show index from 表名\G;(\G分行显 ...
- (转)spring异常抛出触发事务回滚策略
背景:在面试时候问到事务方法在调用过程中出现异常,是否会传递的问题,平时接触的比较少,有些懵逼. spring异常抛出触发事务回滚策略 Spring.EJB的声明式事务默认情况下都是在抛出unchec ...
随机推荐
- ZeroClipboard 插件实现文本复制到剪贴板
ZeroClipboard 的官网 点这里,github地址 点这里. 事例如下: 在引入 ZeroClipboard.js 之后, <button id="clip_button&q ...
- Mac电脑AndroidStudio使用SVN进行版本控制
http://blog.csdn.net/xiaoshi720/article/details/49467523
- paper 94:视觉领域博客资源1之中国部分
这是收录的图像视觉领域的博客资源的第一部分,包含:中国内地.香港.台湾 这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享的paper.code或者数据集不 ...
- 移动前端中viewport(视口) 转
移动前端中常说的 viewport (视口)就是浏览器显示页面内容的屏幕区域.其中涉及几个重要概念是 dpi ( device-independent pixel 设备逻辑像素 )和 CSS 像素之间 ...
- visual studio code + Nodejs + Typescritpt + angularjs2 + bootstrap 环境搭建/Elementary os
1.apt-get update 99% waiting for headers卡住了,fix如下 sudo apt-get clean cd /var/lib/apt sudo mv lists l ...
- Python—进程、线程、协程
一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 方法: ...
- ALLOCATE语句分配FORTRAN动态数组方法(转自http://blog.csdn.net/zhuxianjianqi/article/details/8067174)
数组的动态分配 a) 可分配数组 数组可以是静态的也可以是动态的.如果数组是静态的,则在编译时就被分配了固定的储存空间,并且直到程序退出时才被释放.程序运行时静态数组的大小不能改变.静态数组的缺 ...
- sql按时间段汇总
select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,CreateOn),120),dateadd(ss,-1,Create ...
- Java 菜鸟学习之 script脚本语句
脚本语句 一般分为 顺序语句 分支语句 循环语句 顺序语句 就是从上到下依次读取 分支语句 是if语句 if(判断条件) { 满足条件执行的语句 } else { 不满足条件执行的语句 ...
- 【Office Word】论文排版有关技巧
本文分两部分,第一部分呢是Word中标题的编号以及图表的编号:第二部分是MathType中公式编号的右对齐方法. 1. word中标题的编号以及图表的编号 本部分转载自:http://blog ...