728x90
반응형

 

Spring에서 Mabits의 SelectKey에 대해 알아보기

 

SQL 수행작업 중

1) INSERT 이전에 생성할 값(랜덤인덱스 값등)

2) INSERT 이후에 알 수 있는 값(랜덤인덱스 값등)

1번과 2번에 필요한 경우가 생긴다.

 

2번 같은 경우 결과값을 받은 후 다시 쿼리를 실행하는 방법이 있으나,

불필요한 여러번의 DB 입출력은 시간이 느려진다는 단점이 있다.

그때, selectKey를 사용하여 바로 적용할 수 있다.

마이바티스, 아이바티스 둘다 적용이 가능하다.

 

selectKey는 DB에 명령을 한번만 보내며, 우선 입력한 값의 결과값을 다음 쿼리로 바로 return 시켜주는 것이다.

 

마이바티스 한글 번영 문서 : http://www.mybatis.org/mybatis-3/ko/

 

MyBatis – 마이바티스 3 | 소개

마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

mybatis.org

마이바티스 Blog :  http://blog.mybatis.org/

 

The MyBatis Blog

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

 

 

SelectKey 엘리먼트 속성

 

selectKey 적용 전 비교 테이블 데이터 확인하기

ex) SELECT * FROM TEST

 

 

 

SelectKey BEFORE 적용하기

 

결과 확인하기

 

에러시 참고할 부분

1. DAO클래스일 경우 XML의 쿼리가 INSERT 혹은 UPDATE를 맞게 셋팅했는지

2. 호출 XML파일의 네임스페이스가 맞는지 확인하기

3. Mapper인터페이스 일 경우 XML의 id 확인하기

 

 

SelectKey AFTER 적용하기

 

결과 확인하기

1) DB값 들어갔는지

 

2) Controller(JAVA)에서 AFTER로 보낸 값을 받았는지 확인하기

 

에러시 참고할 부분

1) XML에서 INSERT 혹은 UPDATE 구문에서 사용한 ParameterType으로 값이 들어감

- > VO, MAP등 보냈던 ParameterType으로 들어가므로 VO같은경우 afterCnt라는 변수가 있어야함

 

 

 

728x90
반응형

+ Recent posts