거래
YMPv2.0의 새로운 기능을 기반으로 JDBC 모듈은 데이터베이스 트랜잭션 처리에 더 유연해졌습니다. 클래스 객체 관리자가 관리하는 모든 객체는 @Transaction 주석을 통해 트랜잭션을 지원할 수 있습니다. #🎜 🎜#
- @거래 주석:
- 매개변수 설명:
- 값: transaction 유형(JDBC 트랜잭션 유형 참조), 기본값은 JDBC.TRANSACTION.READ_COMMITTED입니다. 데이터베이스 트랜잭션 지원이 필요한 클래스 객체는
#🎜🎜 #에 @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<User>() { 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(); } } }
- 값: transaction 유형(JDBC 트랜잭션 유형 참조), 기본값은 JDBC.TRANSACTION.READ_COMMITTED입니다. 데이터베이스 트랜잭션 지원이 필요한 클래스 객체는