java - 关闭 resultSet 和 callableStatement

标签 java hibernate

如果我使用 Hibernate,是否必须关闭 ResultSetCallableStatement?例如:

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() 连接,所有获取的对象,例如 StatementsResultSets 将被关闭。

但是,如果您使用连接池,则close()方法会将连接返回到,并且实际上不会关闭联系。在这种情况下,依赖对象可以保持打开状态。在这种情况下,我认为最好手动关闭它们。

关于java - 关闭 resultSet 和 callableStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989132/

相关文章:

java - Gson在json中存储对象类型

java - 对象不支持该属性或方法--在IE9中调用Applet

java - Hibernate 限制 : Object betweeen two DB. table.propertyName

java - 使用输入列表获取实体对象列表 : Spring Data JPA - Hibernate

java - 允许用户调整 JTable 列的大小

java - Hibernate 一对一单向更新

java - 有没有办法让一个类中的 JTextArea 响应另一个类中的 JButton 单击?

java - 错误 500 : org. hibernate.HibernateException:未找到当前线程的 session

java - @ManyToMany 没有连接表(遗留数据库)

java - hibernate 更新为空,然后尝试通过更新的列删除