如果我使用 Hibernate,是否必须关闭 ResultSet
和 CallableStatement
?例如:
CallableStatement cstmt = sessionFactory.getCurrentSession()
.connection()
.prepareCall("{? = call PREQUEST.GetRequestList(?,?)}");
cstmt.registerOutParameter(1, OracleTypes.VARCHAR);
cstmt.setString(2, sessionId);
cstmt.executeUpdate();
cstmt.close(); // Closing
return cstmt.getString(1);
最佳答案
Connection.close()
方法的 JavaDoc 以“立即释放此 Connection 对象的数据库和 JDBC
资源,而不是等待它们自动释放”。
因此,如果您 close() 连接,所有获取的对象,例如 Statements
和 ResultSets
将被关闭。
但是,如果您使用连接池
,则close()
方法会将连接返回到池
,并且实际上不会关闭联系。在这种情况下,依赖对象可以保持打开状态。在这种情况下,我认为最好手动关闭它们。
关于java - 关闭 resultSet 和 callableStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989132/