我需要首先从方法返回数据,然后调用连接,但是警告告诉我:“此方法应该返回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) { }
}
}
upd:选择将返回类型更改为字符串作为解决方案
答案 0 :(得分:1)
我们可以修复此方法,以便返回对结果集的引用。但是这种方法正在关闭结果集。调用者无法使用该引用。
此代码模式,打开结果集,关闭结果集以及返回对已关闭结果集的引用不起作用。