[Mybatis] 결과 제한(Limit) 예제

MyBatis에서 결과 제한 (LIMIT)을 사용하려면 데이터베이스 종류에 따라 다른 방법을 사용해야 합니다. 아래에서는 MySQL과 Oracle 데이터베이스에 대한 결과 제한 예제를 제공합니다.

MySQL에서 결과 제한 예제:

MySQL에서는 LIMIT 절을 사용하여 결과를 제한할 수 있습니다.

<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getLimitedUsers" resultType="User">
        SELECT * FROM users
        LIMIT #{limit}
    </select>
</mapper>` 
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);
            
            // 결과 제한 값을 파라미터로 전달
            Map<String, Integer> paramMap = new HashMap<>();
            paramMap.put("limit", 10);
            
            // getLimitedUsers 메서드 호출
            List<User> limitedUsers = userMapper.getLimitedUsers(paramMap);
            
            System.out.println("Limited Users: " + limitedUsers);
        }
    }
}` 

Oracle에서 결과 제한 예제:

Oracle 데이터베이스에서는 ROWNUM을 사용하여 결과를 제한할 수 있습니다.

<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getLimitedUsers" resultType="User">
        SELECT * FROM (
            SELECT * FROM users
            WHERE ROWNUM &lt;= #{limit}
        ) WHERE ROWNUM &gt; 0
    </select>
</mapper>` 
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);
            
            // 결과 제한 값을 파라미터로 전달
            Map<String, Integer> paramMap = new HashMap<>();
            paramMap.put("limit", 10);
            
            // getLimitedUsers 메서드 호출
            List<User> limitedUsers = userMapper.getLimitedUsers(paramMap);
            
            System.out.println("Limited Users: " + limitedUsers);
        }
    }
}` 

위의 두 예제에서는 LIMIT를 사용하여 결과를 제한하는 방법을 보여주고 있습니다. 데이터베이스 종류에 따라 SQL 문법이 다를 수 있으므로 사용하는 데이터베이스에 맞게 쿼리를 작성해야 합니다.