MyBatis에서 AUTO INCREMENT 값 가져오기

How to Retrieve the Inserted ID in MyBatis
김주혁's avatar
Aug 19, 2024
MyBatis에서 AUTO INCREMENT 값 가져오기
 

Id를 가져오고 싶다면

 
User 객체를 Builder 패턴으로 insert한다고 쳤을 때

Entity(Dto .. ) Mapper Parameter 객체 생성

 
User user = User.builder() // ... 특정 Entity 관련 값들 .build();
 
User 객체를 빌더 패턴을 사용하여 생성한다. 이 객체는 데이터베이스에 삽입할 데이터를 포함한다.
 

MyBatis Mapper XML 설정

 
<insert id="insert" parameterType="io.api.model.User" keyProperty="id" useGeneratedKeys="true"> // ... insert Query </insert>
 
  • id : MyBatis XML Mapper 파일에서 이 insert 구문을 식별하는 고유한 ID
  • parameter : SQL 문에 전달되는 파라미터의 데이터 유형
    • 여기서 io.api.model.User는 삽입할 데이터를 포함하는 Java 객체의 클래스 경로, 해당 클래스의 속성들이 SQL 문에서 참조된다.
  • useGeneratedKeys : AUTO_INCREMENT 값을 지정(MyBatis가 데이터베이스에서 자동으로 생성된 키 값을 사용해야 하는지를 지정)
  • keyProperty : Query 실행 결과에 따른 Key Property, 이 인수는 자동 생성된 키(예: 자동 증가하는 기본 키)를 맵핑할 객체의 속성명을 지정한다. 데이터베이스에서 새 레코드가 삽입되고 나면, 자동 생성된 키가 이 속성에 설정된다.
    • id 필드가 자동으로 증가하는 기본 키라면, 이 값은 삽입 후 User 객체의 id 속성에 설정
 

Insert Id 획득

userMapper.insert(user); // Get Id System.out.println(user.getId) // id value 획득
 

 
  • User 객체를 생성하고, MyBatis를 통해 데이터베이스에 삽입
  • 삽입 시 자동 생성된 ID는 User 객체의 id 속성에 설정되어, 이후에 사용 가능
  • useGeneratedKeys와 keyProperty를 통해 MyBatis가 자동으로 ID 값을 관리
위와 같은 일련의 흐름으로 MyBatis에서 Insert Id를 획득할 수 있다.
 
 
Share article

vlogue