java - Dao方法,操作单个/多个对象和关闭资源

标签 java jdbc resources dao

通常的建议是在不再需要时关闭 JDBC 资源。这可以在最后完成。但是,如果一个 DAO 方法只操作一个域对象并且一个操作需要一次性检索/创建其中的多个域对象怎么办?获取声明然后反复关闭它是否会成为性能方面的问题?如果是这样,是否应该制定一个单独的方法来一次性处理多个对象,还是应该以某种方式延迟关闭?

最佳答案

您可以在 DAO 层之上添加一个额外的事务层,并在事务/ session 开始时在 Connection 上调用 setAutoCommit(false),让DAO 方法使用相同的 Connection 实例,然后在事务/ session 完成/关闭时使用 commit() Connection。但是,您需要更改 DAO 方法以将 Connection 作为额外参数,或将其存储在 ThreadLocal (但是需要非常小心地完成,因为线程可能被合并)。

只要您始终使用 PreparedStatement 创建语句就不会那么昂贵,它通常被编译并缓存在数据库端。

关于java - Dao方法,操作单个/多个对象和关闭资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3334131/

相关文章:

java - 使用 mysql J 连接器连接到 memsql 时出错

java - "javax.servlet.* "和 "HttpServlet"无法解析为类型

java - 在 Java 中调用 Oracle 存储过程时遇到问题

mysql - 如何通过 JDBC 将记录添加到 MySQL 数据库

Android Studio 1.4 gradle 在构建 baseGameUtils 时失败

java - 访问jar依赖的getResourceAsStream()

java - Android - 如何异步更新ArrayAdapter?

java - 使用正则表达式替换可以在字符串中更改的参数

postgresql - 无法连接到 PostgreSQL

android - 获取Android资源路径