-5

如果连接不是物理连接而是来自 ConnectionPoolDataSource 的抽象,那么将连接紧紧包裹在 SQL 操作周围还是让连接在应用程序中持续存在更好?(我正在使用 c3p0,作为记录。)

等效地(我认为):如果每个应用程序我 getConnection() 一次,c3p0 是否会使它看起来像一个稳定的连接,即使底层物理连接死掉并恢复生机也不会死掉?

如果我应该使连接短暂,我如何使用持久的准备好的语句来编程呢?

4

1 回答 1

1

那么,这又回到了最初的问题——如果有很多连接,我如何在连接之间共享 PreparedStatement?我认为连接创建了自己的 PreparedStatements。

如果这是您唯一的问题 - 老实说,从您最初的问题中并不清楚 - 那么您根本不需要担心这个。JDBC 驱动程序和数据库将在适用和必要时缓存它们。那不是你的责任。只需按照正常的 JDBC 习惯,在尽可能短的范围内获取和关闭 DB 资源。

或者,如果它是一个 Java EE Web 应用程序,请查看 JPA 以将 JDBC 样板简化为 oneliners,并查看 EJB 以将事务处理完全委托给容器,这样您就不需要摆弄(自动)提交和回滚。

于 2012-05-11T21:59:34.173 回答