对于 ResultSets,它很容易——我在阅读它们之后就关闭它们。问题出在 Connection 和 PreparedStatements 上。我不确定何时最好关闭这些资源。
对于防御方法,在对数据库进行每个复杂操作后关闭它们似乎很好,但这意味着每次用户调用任何 portlet 操作(例如每个页面重新加载或调用 MVCPortlet 的 ajax 请求)时,我都必须打开连接并编译准备好的语句#serveResource)。
有没有更好的方法来管理 jdbc 连接?什么时候最好关闭所有这些资源?
每次调用任何 portlet 操作时设置数据库连接和语句可能不是什么大问题?