블로그

MyBatis의 @Options 어노테이션: useGeneratedKeys 속성 이해하기 본문

개발자 준비과정/Spring, SpringBoot, JSP

MyBatis의 @Options 어노테이션: useGeneratedKeys 속성 이해하기

하늘바람a 2024. 5. 7. 22:31

@Options 어노테이션

 

  • MyBatis에서 제공하는 어노테이션
  • SQL 실행 시 다양한 옵션을 설정할 수 있다. 

MyBatis는 자동으로 생성된 키를 사용하여 데이터베이스의 테이블에 새로운 레코드를 추가할 때 사용할 수 있는 다양한 옵션을 제공한다. 

 

 

 

1. `useGeneratedKeys`: 자동 생성된 키를 사용할지 여부를 지정한다. 


  - `true`로 설정하면 데이터베이스에서 자동 생성된 키 값을 사용한다.
  - `false`로 설정하면 애플리케이션에서 직접 키 값을 지정해야 한다.

 

 

 

2. `keyProperty`: 자동 생성된 키 값을 매핑 자바 객체의 프로퍼티 이름을 지정한다.


  - 주로 엔티티 클래스의 ID 필드 이름을 지정한다.
  - 예를 들어 `keyProperty="id"`로 설정하면 자동 생성된 키 값이 엔티티 객체의 id 필드에 매핑된다.

 

 

3. 예시 코드

    @Insert("""
            INSERT INTO board (title,content,writer)
            VALUES(#{title},#{content},#{writer})
            """)
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insert(Board board);


 'insert` 메서드를 통해 `board` 테이블에 새로운 레코드를 삽입한다.

`@Options` 어노테이션을 통해 자동 생성된 키 값을 `board` 객체의 `id` 프로퍼티에 매핑하도록 설정하였다.

 

이를 통해,  INSERT SQL 실행 시 데이터베이스에서 자동 생성된 키 값을 엔티티 객체의 id 필드에 설정할 수 있다.

 

 

 

4. 주요 적용 사례

 

이러한 설정은 주로 데이터베이스에서 자동으로 증가하는 기본 키(primary key)를 가진 테이블에 새로운 레코드를 삽입할 때 사용된다. 

이를 통해 MyBatis가 자동으로 생성된 키를 객체에 매핑하여 개발자가 직접 생성된 키를 다시 가져오지 않아도 되도록 한다.

 

'개발자 준비과정 > Spring, SpringBoot, JSP' 카테고리의 다른 글

엔드포인트  (0) 2024.05.17
@RequestBody와 @ResponseBody  (0) 2024.05.16
Post, Redirect, Get (PRG패턴)  (0) 2024.05.02
transaction  (0) 2024.04.30
JDBC 작성  (0) 2024.04.22