MyBatis INSERT 쿼리 실행 후 auto_increment 키 값 반환하기

MyBatis 쿼리 생성

	<insert id="insertUserAndGetPK" parameterType="UserVO" useGeneratedKeys="true" keyProperty="userId">
		INSERT INTO TB_USER 
		(USER_NAME, USER_AGE, USER_GENDER
		<if test="userYn != null and !userYn.equals('')">,USER_YN</if>
		) 
		VALUES (#{userName}, #{userAge}, #{userGender}
		 		<if test="userYn != null and !userYn.equals('')">,#{userYn}</if>
		);
	</insert>

 

 

`useGeneratedKeys`

DB에서 자동으로 생성된 키를 사용할지 여부입니다. `AUTO_INCREMENT` 또는 `IDENTITY` 속성을 가진 열에 사용합니다.

`keyProperty`

DB에서 생성된 키를 매핑할 자바 객체의 프로퍼티를 지정합니다. 위 예시처럼 `useGeneratedKeys`와 같이 사용함으로써 자동 생성된 ID 값을 저장하기 위한 프로퍼티를 지정해주어야 합니다.

 


반환 값 받기

userMapper.insertUserAndGetPK(userVO);
userId = userVO.getUserId();