Skip to content

Commit f6edea1

Browse files
Avoiding call to ResultSet.first() for forward-only ResultSets.
1 parent 8a67268 commit f6edea1

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/main/java/com/softwareverde/database/jdbc/JdbcDatabaseConnection.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,15 @@ protected List<Row> _query(final String query, final TypedParameter[] typedParam
105105
try (final PreparedStatement preparedStatement = _prepareStatement(query, typedParameters);
106106
final ResultSet resultSet = preparedStatement.executeQuery() ) {
107107

108-
if (resultSet.first()) {
108+
boolean shouldIterate;
109+
if (resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY) {
110+
shouldIterate = resultSet.next();
111+
}
112+
else {
113+
shouldIterate = resultSet.first();
114+
}
115+
116+
if (shouldIterate) {
109117
do {
110118
results.add(_rowFactory.fromResultSet(resultSet));
111119
} while (resultSet.next());
@@ -193,4 +201,4 @@ public void close() throws DatabaseException {
193201
throw new DatabaseException("Unable to close database connection.", exception);
194202
}
195203
}
196-
}
204+
}

0 commit comments

Comments
 (0)