手册

目录

事务(Transaction)

收藏322

阅读11891

更新时间2022-04-11

基于YMPv2.0的新特性,JDBC模块对数据库事务的处理更加灵活,任何被类对象管理器管理的对象都可以通过@Transaction注解支持事务;

  • @Transaction注解:

    • 参数说明:

      value:事务类型(参考JDBC事务类型),默认为JDBC.TRANSACTION.READ_COMMITTED;

    • 使用方式:

      首先,需要数据库事务支持的类对象必须声明@Transaction注解;

      然后,在具体需要开启事务处理的类方法上添加@Transaction注解;

  • 事务示例代码:

    public interface IUserService {
    
        User doGetUser(String username, String pwd);
    
        boolean doLogin(String username, String pwd);
    }
    
    @Bean
    @Transaction
    public class UserService implements IUserService {
    
        public User doGetUser(final String username, final String pwd) {
            return JDBC.get().openSession(new ISessionExecutor() {
                public User execute(ISession session) throws Exception {
                    Cond _cond = Cond.create().eq("username").param(username).eq("pwd").param(pwd);
                    return session.findFirst(EntitySQL.create(User.class), Where.create(_cond));
                }
            });
        }
    
        @Transaction
        public boolean doLogin(String username, String pwd) {
            User _user = doGetUser(username, pwd);
            if (_user != null) {
                _user.setLastLoginTime(System.currentTimeMillis());
                _user.update();
                //
                return true;
            }
            return false;
        }
    }
    
    @Bean
    public class TransDemo {
    
        @Inject
        private IUserService __userService;
    
        public boolean testTrans() {
            return __userService.doLogin("suninformation", "123456");
        }
    
        public static void main(String[] args) throws Exception {
            YMP.get().init();
            try {
                TransDemo _demo = YMP.get().getBean(TransDemo.class);
                _demo.testTrans();
            } finally {
                YMP.get().destroy();
            }
        }
    }

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号