거래


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();
              }
          }
      }