[Mybatis] 반복자(Iterators) 사용 예제
MyBatis에서 반복자(Iterators)를 사용하면 대량의 데이터를 효율적으로 조회하고 처리할 수 있습니다. 반복자를 사용하면 결과를 일괄적으로 로드하지 않고 필요한 만큼만 조회할 수 있습니다. 아래는 반복자를 사용한 예제입니다.
예제: 반복자 사용
- 매퍼 인터페이스 작성:
매퍼 인터페이스에 반복자를 사용할 메서드를 작성합니다.
public interface UserMapper {
Iterator<User> getAllUsersAsIterator();
}`
- 매퍼 XML 파일 작성:
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
<select id="getAllUsersAsIterator" resultType="User">
SELECT * FROM users
</select>
</mapper>`
- 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);
// 반복자를 사용하여 모든 사용자 조회
try (Iterator<User> userIterator = userMapper.getAllUsersAsIterator()) {
while (userIterator.hasNext()) {
User user = userIterator.next();
System.out.println("User: " + user);
}
}
}
}
}`
위의 예제에서는 Iterator<User>
를 사용하여 모든 사용자를 조회하고, 필요한 만큼만 데이터를 로드합니다. 이를 통해 대용량 데이터베이스에서도 효율적으로 데이터를 처리할 수 있습니다.
반복자를 사용하면 메모리 사용을 최소화하고, 대용량 데이터를 처리할 때 유용합니다.