[Mybatis] 자동 매핑(Auto-mapping) 예제
MyBatis에서 자동 매핑은 데이터베이스 결과를 자동으로 Java 객체에 매핑하는 기능을 제공합니다. 이를 위해서는 데이터베이스 결과의 열 이름과 Java 객체의 필드 이름을 일치시키거나 매핑 규칙을 지정해야 합니다. 아래는 자동 매핑 예제입니다.
예제: 자동 매핑
- 매퍼 XML 파일 작성:
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
<resultMap id="userResultMap" type="User">
<!-- 열 이름과 Java 객체의 필드 이름을 일치시킴 -->
<result column="user_id" property="id"/>
<result column="username" property="username"/>
<result column="email" property="email"/>
</resultMap>
<select id="getUserById" resultMap="userResultMap">
SELECT * FROM users WHERE user_id = #{id}
</select>
</mapper>`
위의 예제에서는 <resultMap>
을 사용하여 열 이름과 Java 객체의 필드 이름을 일치시키는 매핑을 정의합니다.
- Java 코드에서 호출:
public class User {
private Long id;
private String username;
private String email;
// Getter 및 Setter 생략
}
public class Main {
public static void main(String[] args) {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
try (SqlSession sqlSession = sessionFactory.openSession()) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// getUserById 메서드 호출
User user = userMapper.getUserById(1L);
System.out.println("User: " + user);
}
}
}`
위의 예제에서는 매퍼 XML 파일에서 정의한 <resultMap>
을 사용하여 데이터베이스 결과를 자동으로 Java 객체에 매핑합니다. 열 이름과 Java 객체의 필드 이름이 일치하면 자동 매핑됩니다.
자동 매핑은 간단한 매핑 작업에 유용하며, 별도의 자동 매핑 규칙을 지정하려면 MyBatis의 AutoMappingBehavior
를 사용할 수도 있습니다.