【发布时间】:2014-05-29 04:44:15
【问题描述】:
我正在创建一个服务器端 Java 任务,它永远每 60 秒执行一次相同的 SQL UPDATE,因此它非常适合使用 java.sql.PreparedStatement。
我宁愿每 60 秒重新连接一次数据库,也不愿假设单个连接在未来几个月仍能正常工作。但是,如果每次打开新连接时都必须重新生成一个新的 PreparedStatement,这似乎违背了目的。
我的问题是:由于 PreparedStatement 是从 java.sql.Connection 创建的,这是否意味着必须维护连接才能有效地使用 PreparedStatement,或者是 PreparedStatement 保存在数据库中而不是每个都重新编译新连接?我目前正在使用 postgresql,但可能并不总是。
我想我可以保持连接打开,然后仅在尝试更新时发生异常时重新打开。
【问题讨论】:
-
感谢 Luiggi 和 Raj 的回答。经过一些实验(同时使用 PreparedStatement 和 Statement),我认为性能方面没有太大差异。所以我会保持简单,每次都打开和关闭连接。
标签: java sql database-connection prepared-statement