作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个服务器端 Java 任务,该任务永远每 60 秒执行一次相同的 SQL UPDATE,因此它非常适合使用 java.sql.PreparedStatement。
我宁愿每 60 秒重新连接一次数据库,也不愿假设单个连接在未来几个月仍能正常工作。但是,如果每次打开新连接时都必须重新生成新的PreparedStatement,那么似乎就达不到目的了。
我的问题是:既然PreparedStatement是从java.sql.Connection创建的,这是否意味着必须维护连接才能有效地使用PreparedStatement,或者PreparedStatement是否保存在数据库中并且不会与每个SQL一起重新编译新连接?我目前正在使用 postgresql,但可能并不总是如此。
我想我可以保持连接打开,然后仅在尝试更新时发生异常时重新打开。
最佳答案
使用数据库连接池。即使在关闭连接后,这也将使连接保持在 sleep 模式下。此方法还可以节省应用程序的性能。
尽管创建了 PreparedStatement
的连接,SQL 语句仍将由数据库引擎缓存,并且在重新创建 PreparedStatement
对象时不会出现任何问题。
关于Java SQLPreparedStatement和维护连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23921230/
我正在从 Access 数据库中的三个表中读取大量数据,大约 200 万行,可能是 100MB 的文本。我使用以下 SELECT 语句: Class.forName("sun.jdbc.odbc.Jd
我是一名优秀的程序员,十分优秀!