[java] MyBatis에서 로우 레벨 SQL 사용하기

많은 경우에 MyBatis를 사용하여 데이터베이스와 상호 작용하는 것은 간편하고 효율적입니다. 하지만 때로는 로우 레벨 SQL을 사용해야 할 때가 있습니다. 이 글에서는 MyBatis에서 로우 레벨 SQL을 사용하는 방법에 대해 알아보겠습니다.

1. XML 매퍼 파일 작성

우선 XML 매퍼 파일에 로우 레벨 SQL을 작성해야 합니다. 다음은 예시입니다.

<mapper namespace="com.example.mapper.UserMapper">
  <select id="getUserById" parameterType="int" resultType="com.example.model.User">
    SELECT * FROM users WHERE id = #{id}
  </select>
</mapper>

위의 예시에서는 getUserById라는 아이디를 갖는 쿼리를 작성했습니다. parameterType은 입력으로 받는 파라미터의 타입이며, resultType은 쿼리 결과의 타입입니다.

2. Java 인터페이스 작성

로우 레벨 SQL을 사용하기 위해 Java 인터페이스를 작성해야 합니다. 다음은 예시입니다.

public interface UserMapper {
  User getUserById(int id);
}

위의 예시에서는 getUserById 메소드를 작성했습니다. 해당 메소드는 int 타입의 아이디를 입력으로 받고, User 타입의 결과를 반환합니다.

3. MyBatis 설정 파일 업데이트

MyBatis 설정 파일에 위에서 작성한 XML 매퍼 파일과 Java 인터페이스를 등록해야 합니다. 다음은 예시입니다.

<configuration>
  <mappers>
    <mapper resource="com/example/mapper/UserMapper.xml" />
  </mappers>
</configuration>

위의 예시에서는 UserMapper.xml 파일을 등록했습니다.

4. 로우 레벨 SQL 사용하기

이제 로우 레벨 SQL을 사용할 준비가 되었습니다. 다음은 예시입니다.

public static void main(String[] args) {
  try(SqlSession session = MyBatisUtil.getSqlSessionFactory().openSession()) {
    UserMapper userMapper = session.getMapper(UserMapper.class);
    User user = userMapper.getUserById(1);
    System.out.println(user);
  }
}

위의 예시에서는 SqlSession을 통해 UserMapper 인터페이스의 메소드를 호출하고, 결과를 출력합니다.

결론

이제 MyBatis에서 로우 레벨 SQL을 사용하는 방법을 알아보았습니다. 필요한 경우에는 이 방법을 사용하여 데이터베이스와 더 세밀하게 상호 작용할 수 있습니다. 자세한 내용은 MyBatis 공식 문서를 참조하시기 바랍니다.