運行此代碼時,出現ResultSet關閉錯誤。是所謂的方法和數據如下:Java JDBC ResultSet關閉
日誌輸出:
[2014-05-05 22:34:09.169 Debug] select count(*) as total from companies
[2014-05-05 22:34:09.170 Debug] ResultSet closed
方法:
public static Boolean recordsExist(String string, Connection c) {
try {
String[] query = string.split("\\*");
String sql = "select count(*) as total" + query[1];
ResultSet resultset = queryDB(sql, c);
resultset.next();
int count = resultset.getInt(1);
Log.debug(Integer.toString(count));
resultset.close();
if (count > 0) {
Log.debug("recordsExist returning true");
return true;
} else {
Log.debug("recordsExist returning false");
return false;
}
} catch (Exception e) {
Log.debug(e.getMessage());
return false;
}
}
public static ResultSet queryDB(String sql, Connection c) throws SQLException {
Log.debug(sql);
Statement s = c.createStatement();
ResultSet resultset = s.executeQuery(sql);
s.close();
return resultset;
}
指定SQL字符串:
select * from companies
也爲什麼你關閉結果集在try塊?你應該最後關閉塊 – user3470953
不幸的是,你的異常處理會吞下堆棧跟蹤,這是一種反模式。 –