收藏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();
}
}
} 相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习