Interface FetchResult<T>

Type Parameters:
T - 결과셋에 포함된 요소의 타입
All Superinterfaces:
AutoCloseable, Iterable<T>, Iterator<T>
All Known Subinterfaces:
DocResult
All Known Implementing Classes:
DocResultImpl

public interface FetchResult<T> extends Iterator<T>, Iterable<T>, AutoCloseable
데이터베이스 조회 결과를 표현하는 제네릭 인터페이스이다.

이 인터페이스는 Iterator, Iterable, AutoCloseable의 특징을 결합하여, 조회 결과를 다루는 다양한 편의 기능을 제공한다. 결과셋이 데이터베이스 커서(cursor)와 같은 리소스를 점유할 수 있으므로, 사용 후에는 반드시 close()를 호출해야 한다. 따라서 try-with-resources 구문 사용을 강력히 권장한다.

Since:
1.0
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    이 결과셋과 관련된 모든 데이터베이스 리소스(예: ResultSet, Statement)를 해제한다.
    long
    결과셋의 전체 항목 개수를 반환한다.
    결과셋에 남아있는 모든 항목을 List 컬렉션으로 가져온다.
    default @NotNull Iterator<T>
    이 결과셋에 대한 반복자(Iterator)를 반환한다.

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator

    Methods inherited from interface java.util.Iterator

    forEachRemaining, hasNext, next, remove
  • Method Details

    • iterator

      @NotNull default @NotNull Iterator<T> iterator()
      이 결과셋에 대한 반복자(Iterator)를 반환한다.

      이 메서드는 Iterable 인터페이스를 구현하여 향상된 for-loop 구문을 지원하기 위해 존재한다. 주의: 기본 구현은 fetchAll()을 호출하므로, 이 반복자를 사용하면 결과셋의 모든 데이터를 메모리로 로드한다. 매우 큰 결과셋을 다룰 때는 메모리 문제를 피하기 위해 while (results.hasNext()) 패턴을 사용하는 것이 좋다.

      Specified by:
      iterator in interface Iterable<T>
      Returns:
      모든 결과가 포함된 리스트에 대한 반복자
    • fetchAll

      List<T> fetchAll()
      결과셋에 남아있는 모든 항목을 List 컬렉션으로 가져온다.

      이 메서드를 호출하면 내부 반복자(iterator)는 끝까지 소진된다. 결과셋이 크지 않아 전체를 메모리에 올려두고 작업하는 것이 편리할 때 사용한다.

      Returns:
      결과셋의 모든 항목을 담은 List
    • count

      long count()
      결과셋의 전체 항목 개수를 반환한다.

      이 메서드는 결과셋의 데이터를 소진시키지 않고 전체 크기만 반환해야 한다.

      Returns:
      결과셋의 전체 항목 수
    • close

      void close()
      이 결과셋과 관련된 모든 데이터베이스 리소스(예: ResultSet, Statement)를 해제한다.

      AutoCloseable 인터페이스의 메서드이며, try-with-resources 구문에 의해 자동으로 호출된다. 리소스 유출을 방지하기 위해 반드시 호출되어야 한다.

      Specified by:
      close in interface AutoCloseable