问题:游标数量一直增加,直到达到最大值。
第一个连接被创建。此连接永远不会关闭()
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(url, schema, password);
con.setAutoCommit(true);
con.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT);
使用相同的连接,客户端可以
public ResultSet runSelect(final StringBuilder query) {
Statement stmt = null;
ResultSet rs = null;
try {
stmt = con.createStatement();
rs = stmt.executeQuery(query.toString());
} catch (SQLException e) {
logger.error("Failed to execute database query (select):" + query, e);
}
return rs;
}
收到结果后,客户端close()
将其与语句一起
if (rs != null) {
try {
rs.close();
...
这里有什么东西会导致游标数量增加吗?
我在想可能是我错过了关闭 stmt 并且应该是
if (rs != null) {
try {
Statement stmt = rs.getStatement();
stmt.close();
rs.close();
...
此外,在结果集关闭的顺序上..在关闭结果集之前关闭语句是否可以?
不幸的是,我要到明天才能确认这一点。你怎么看?