java - 关闭liferay portlet中的jdbc资源

标签 java jdbc liferay portlet

对于 ResultSets 来说很简单 - 我在读完它们后就关闭它们。问题出在连接和PreparedStatements 上。我不确定什么时候最好关闭这些资源。

对于防御方法来说,在数据库上的每个复杂操作之后关闭它们似乎是件好事,但这意味着每次用户调用任何 portlet 操作(例如每个页面重新加载或调用 MVCPortlet#serveResource 的 ajax 请求)时,我都必须打开连接并编译准备好的语句。

有没有更好的方法来管理 jdbc 连接?什么时候最好关闭所有这些资源?

也许每次调用任何 portlet 操作时设置数据库连接和语句并不是什么大问题?

最佳答案

最直接的方法可能是这个实用程序类 http://docs.liferay.com/portal/6.0/javadocs/com/liferay/portal/kernel/dao/jdbc/DataAccess.html

您可以在finally语句中将所有打开的资源传递给DataAccess.cleanUp(),实际上它只是为您做空检查和异常处理。

如果有一个PreparedStatement被多次调用,也许它可以在请求之间保留,但这是一种在没有其他事情可做时需要考虑的后期优化。开销很小。

关于java - 关闭liferay portlet中的jdbc资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456591/

相关文章:

java - 如何让 ScrollView 滚动到底部?

java - 如何使用Spark处理CSV数据并输出序列化的自定义JavaObject?

java - 如何在 spring 项目中正确注入(inject) @Autowired 依赖而不使用 getBean?是否可以?

java - JDBC 参数 verifyServerCertificate=false 无需客户端 keystore 和信任库即可连接

java - Liferay 6.2 上 Spring MVC 表单中的 Portlet 命名空间

java - 将工作流添加到自定义 portlet(由 Plugins-SDK 创建)

java - CF8 SSL 连接到 Postgres 失败

java - 在 jpanel 中搜索按钮并获取按钮的文本?

java - JDBC 的结果集给了我两次查询的第一行。为什么?

repository - 从liferay存储库获取文档