[Mybatis] 자동 문자열 변환(Auto-mapping JdbcType) 예제

MyBatis에서 자동 문자열 변환(Auto-mapping JdbcType)을 사용하면 데이터베이스에서 정수 형태로 저장된 값을 자동으로 Java의 String으로 매핑할 수 있습니다. 이를 위해 mybatis-config.xml 또는 SqlSessionFactory 설정에서 autoMappingBehavior를 활성화해야 합니다. 아래는 자동 문자열 변환 예제입니다.

예제: 자동 문자열 변환 활성화

  1. mybatis-config.xml 설정:

MyBatis 설정 파일인 mybatis-config.xml에서 autoMappingBehavior를 활성화합니다.

<!-- mybatis-config.xml -->
<configuration>
    <!-- 다른 설정 ... -->
    
    <!-- 자동 문자열 변환 활성화 -->
    <settings>
        <setting name="autoMappingBehavior" value="FULL"/>
    </settings>
</configuration>` 
  1. 매퍼 인터페이스 작성:

매퍼 인터페이스에는 자동 문자열 변환을 사용할 메서드를 작성합니다.

public interface UserMapper {
    String getUsernameById(@Param("userId") int userId);
}` 
  1. 매퍼 XML 파일 작성:
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUsernameById" resultType="java.lang.String">
        SELECT username FROM users WHERE user_id = #{userId}
    </select>
</mapper>` 
  1. Java 코드에서 호출:
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);
            
            // 정수 형태로 저장된 값을 자동으로 문자열로 변환하여 조회
            String username = userMapper.getUsernameById(1);
            
            System.out.println("Username: " + username);
        }
    }
}` 

위의 예제에서는 autoMappingBehaviorFULL로 설정하여 자동 문자열 변환을 활성화하고, String 타입의 결과를 받아오도록 설정했습니다. 이제 정수 형태로 저장된 값을 자동으로 문자열로 변환하여 조회할 수 있습니다.

자동 문자열 변환은 데이터베이스에서 숫자 형식으로 저장된 값을 문자열로 사용해야 할 때 유용합니다.