MyBatis는 자바 언어 기반의 ORM(Object Relational Mapping) 프레임워크로, 데이터베이스와 자바 객체 간의 매핑을 쉽게 처리할 수 있도록 도와줍니다. 이번에는 MyBatis를 사용하면서 자동 증가 컬럼을 처리하는 방법에 대해 알아보겠습니다.
1. 자동 증가 컬럼 정의하기
먼저, 데이터베이스 테이블에서 자동 증가 컬럼을 정의해야 합니다. 예를 들어, users
라는 테이블의 id
컬럼이 자동 증가 컬럼으로 사용되는 경우에는 다음과 같이 정의할 수 있습니다.
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(50)
);
위의 예시에서 id
컬럼은 AUTO_INCREMENT
속성을 가지고 있으므로, 데이터가 삽입될 때 자동으로 증가됩니다.
2. MyBatis XML 설정 파일 수정하기
MyBatis XML 설정 파일에서 자동 증가 컬럼을 처리하기 위해 몇 가지 설정을 추가해야 합니다. 먼저, <insert>
태그에서 자동 증가 컬럼에 대한 처리를 할 수 있도록 다음과 같이 useGeneratedKeys
와 keyProperty
속성을 설정해줍니다.
<insert id="createUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO users (name, email) VALUES (#{name}, #{email})
</insert>
위의 설정에서 useGeneratedKeys
속성을 true
로 설정하면, MyBatis에게 자동 생성된 키를 반환하도록 지정하게 됩니다. 또한, keyProperty
속성을 id
로 설정하여 자동 생성된 키 값을 User
객체의 id
프로퍼티에 매핑하도록 합니다.
3. 자동 증가 컬럼 사용하기
이제 자동 증가 컬럼을 사용하여 데이터를 삽입할 수 있습니다. 이를 위해 MyBatis의 SqlSession
을 사용하여 다음과 같이 createUser
메서드를 호출합니다.
public void createUser(User user) {
try (SqlSession session = sqlSessionFactory.openSession()) {
session.insert("createUser", user);
session.commit();
}
}
위의 예시에서 createUser
메서드는 User
객체를 입력받아 MyBatis의 insert
메서드를 사용하여 데이터를 삽입합니다. 이때, insert
메서드의 첫 번째 파라미터는 MyBatis XML 설정 파일에서 정의한 SQL 매핑 ID이며, 두 번째 파라미터는 실제 데이터를 나타내는 객체입니다.
자동 증가된 키 값을 얻기 위해 createUser
메서드를 호출한 후에는 User
객체의 id
프로퍼티를 통해 값을 확인할 수 있습니다.
마무리
이처럼 MyBatis를 사용하면 데이터베이스의 자동 증가 컬럼을 손쉽게 처리할 수 있습니다. 자동 증가 컬럼이 필요한 경우, 데이터베이스 테이블의 정의 및 MyBatis XML 설정 파일의 수정을 통해 처리할 수 있습니다.