Statement#executeQuery()
никогда возвращает null
. Вся проверка на ноль лишняя . Обычная идиома следующая:
public Entity find(Long id) throws SQLException {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
Entity entity = null;
try {
connection = database.getConnection();
preparedStatement = connection.prepareStatement(SQL_FIND);
preparedStatement.setLong(1, id);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
entity = new Entity();
entity.setId(resultSet.getLong("id"));
entity.setName(resultSet.getString("name"));
// ...
}
} finally {
close(connection, preparedStatement, resultSet); // In reversed order.
}
return entity;
}
Ваша актуальная проблема лежит где-то еще. Это явно неверная интерпретация трассировки стека. Чтобы правильно его записать, вам нужно найти номер строки первой строки в трассировке стека и указать точный код этой строки.