[Mybatis] 자동 매핑(Auto-mapping) 예제

MyBatis에서 자동 매핑은 데이터베이스 결과를 자동으로 Java 객체에 매핑하는 기능을 제공합니다. 이를 위해서는 데이터베이스 결과의 열 이름과 Java 객체의 필드 이름을 일치시키거나 매핑 규칙을 지정해야 합니다. 아래는 자동 매핑 예제입니다.

예제: 자동 매핑

  1. 매퍼 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 객체의 필드 이름을 일치시키는 매핑을 정의합니다.

  1. 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를 사용할 수도 있습니다.