我们在项目中使用连接池。我们在项目中看到语句在关闭连接后关闭。我知道在连接池的情况下,在连接关闭后,与数据库的物理连接不会关闭,而是返回池以供重用。所以我的问题是:
如果在关闭连接后关闭语句会发生什么?是否正确关闭语句/关闭连接将关闭所有语句并关闭语句是多余的/语句是否打开,虽然连接返回池,但由于open语句而无法重用? (我们同时使用Statement和PreparedStatement。)
答案 0 :(得分:1)
如果在关闭连接后关闭语句会发生什么?
无。他们已经关闭了。这是记录在案的。
声明是否会正确关闭
是。这是记录在案的。
/将关闭连接关闭所有语句
是。这是记录在案的。
并关闭语句是多余的
是
语句是开放的,虽然连接返回到池,但由于open语句,它不可重用? (我们同时使用Statement和PreparedStatement。)
我无法做到这一点的头或尾。如果连接已关闭,则从中导出的Statements
和ResultSets
也会关闭。这是记录在案的。如果Connection
未关闭,则Statements
和ResultSets
也不会关闭,除非您关闭它们。
您必须整理代码,以便在ResultSets
的生命周期之后不再依赖Statement
,Statement
超过Connection
的生命周期。这很简单。