ResultSet 클래스에는 row의 갯수를 리턴해주는 메소드가 없다.
물론 만들면 된다.
resultSet.last() 를 호출하므로
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY
을 미리 설정해줘야 한다. (필요없는 경우도 있긴하다.)
PreparedStatement stmt = conn.prepareStatement(
query,
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
or
Statement stmt = connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

public static int getResultSetSize(ResultSet resultSet) {
    int size = -1;

    try {
        resultSet.last();
        size = resultSet.getRow();
        resultSet.beforeFirst();
    } catch(SQLException e) {
        return size;
    }

    return size;
}

Posted by ukmie
,