Мне нужно сначала вернуть данные из метода, а затем вызвать соединение, но предупреждение говорит мне: «Этот метод должен возвращать результат типа ResultSet», добавляя возврат в конец метода после закрытия, но если вы напишите это так, что предупреждение все еще существует. Может быть, я должен удалить все это и использовать инкапсуляцию по-другому? Вот метод
public ResultSet doSQLQuery(String query) throws ClassNotFoundException{
Class.forName("com.mysql.jdbc.Driver");
String SQLQuery = query;
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try{
connection = DriverManager.getConnection(DB_URL,login,password);
statement = connection.prepareStatement(SQLQuery);
resultSet = statement.executeQuery();
return resultSet; //return from this place doesnt possible(?)
} catch (SQLException e) {
System.err.println("SQLException caught");
e.printStackTrace();
}finally {
if (resultSet != null)
try { resultSet.close(); }
catch (SQLException ignore) { }
if (statement != null)
try { statement.close(); }
catch (SQLException ignore) { }
if (connection != null)
try { connection.close(); }
catch (SQLException ignore) { }
}
}
обн .: в качестве решения выбрано изменение типа возвращаемого значения на строку