728x90
반응형
데이터베이스에 자동 생성된 키 값을 가져와 활용해야 하는 경우가 빈번하다.
주로 INSERT 작업에서 생성되는 키 값을 MyBatis의 <selectKey>를 사용하면 간편하게 가져올 수 있다.
<selectKey>의 역할
<selectKey>는 INSERT 문을 실행하기 전에 또는 후에 특정 SQL 쿼리를 실행하여 자동 생성된 값을 조회하는 데 사용된다. 주로 다음과 같은 상황에서 활용된다:
- 자동 증가 키 가져오기: 데이터베이스에서 자동으로 증가하는 기본 키를 가져와야 할 때.
- 시퀀스에서 값 조회하기: 시퀀스를 사용하여 기본 키를 생성하고, 해당 값을 조회할 때.
사용 방법
<selectKey>를 사용하려면 다음과 같은 구조를 가진 SQL 매퍼 XML을 작성해야 한다:
- <selectKey> 정의: 자동 생성된 값을 조회할 쿼리를 정의한다.
- <insert> 문: 데이터를 삽입할 때 사용할 INSERT 문을 정의한다.
예제
다음 예제에서는 자동 생성된 기본 키를 가져오는 과정을 보여준다.
<mapper namespace="com.example.UserMapper">
<!-- 데이터를 삽입하는 INSERT 문 -->
<insert id="insertUser" parameterType="com.example.User">
<!-- 자동 생성된 키를 가져오는 <selectKey> 정의 -->
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID() AS id
</selectKey>
INSERT INTO users (name, email)
VALUES (#{name}, #{email})
</insert>
</mapper>
package com.example;
@Getter
@Setter
public class User {
private Integer id;
private String name;
private String email;
}
User 클래스의 id 필드에 저장된다.
728x90
반응형
'MyBatis' 카테고리의 다른 글
[MyBatis] 바인딩 ${}, #{} (2) | 2024.09.01 |
---|---|
[MyBatis] CDATA 사용법 (0) | 2024.08.10 |
MyBatis <choose> 태그 사용법 및 <if> 태그와의 차이 (0) | 2024.08.04 |
MyBatis <if> 태그 사용법 (0) | 2024.08.03 |
SpringBoot 프로젝트에서 MyBatis 설정하기 (0) | 2024.07.30 |