在jfinal中使用@Before(Tx.class)能否对我调用的方法进行事务的操作,不满足不执行操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jfinal中使用@Before(Tx.class)能否对我调用的方法进行事务的操作,不满足不执行操作相关的知识,希望对你有一定的参考价值。

参考技术A 一般是对数据库操作进行事务吧

int result = Db.update("update XXX set xxx=?", xxxx);
if (result != 1)
try
DbKit.getConfig().getThreadLocalConnection().rollback();
catch (SQLException e)
log.error("xx事务回滚失败,请检查数据库是否不支持事务", e);

renderEasyUIError("xxxxxx");
return;

jfinal的回滚

有两种方法

1.

    @Before(Tx.class)    
    public void test() throws Exception {    
        
    } 

优点:简单,不需要去处理每个异常,直接抛出异常;

缺点:不能详细的区分返回数据、视图,只能笼统的报出异常

2.

    public void pay() {    
        boolean bool = Db.tx(new IAtom() {    
            @Override    
            public boolean run() throws SQLException {    
                if (...) {    
                    //全部回滚
                    return false;    
                } else {    
                    //全部成功
                    return true;    
                }      
                //return true;    
            }    
        });    
            
        render...;
    }

推选这个

以上是关于在jfinal中使用@Before(Tx.class)能否对我调用的方法进行事务的操作,不满足不执行操作的主要内容,如果未能解决你的问题,请参考以下文章

jfinal的回滚

Jfinal中的validator理解/详解

jfinal如何过滤对JSP/html的请求?

使用Maven搭建JFinal环境

JFinal - scheduler 插件做定时任务

jfinal中Interceptor的使用