MyBatis에서 AUTO INCREMENT 값 가져오기
How to Retrieve the Inserted ID in MyBatis
Aug 19, 2024
Contents
Id를 가져오고 싶다면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