【发布时间】:2015-09-25 11:06:10
【问题描述】:
我有大量的列表结构数据正在流式传输到处理程序。 Handler 是一个构建INSERT 或UPDATE 准备好的语句并执行它的类。现在所有准备好的语句都在一个连接和事务中执行。所以,想象一下从数据库服务器意外关闭连接的情况,这显然会导致应用程序崩溃。如何在不丢失数据的情况下重新连接到数据库?如果我只打电话给DriverManager.getConnection,我会不会丢失之前连接的所有数据?
数据是一个包含无序条目列表的大型 (1-2 GB) XML,应仅通过一个事务上传到数据库,没有中间事务。
我使用 postgres 数据库和 jdk7。
【问题讨论】:
-
这里听起来像数据库代码优化:2 条建议:1) 使用池化
DataSource来获取 JDBC 连接,2) 批量插入/更新语句而不是单独执行,一个一个。 -
-
肯定会把它分成块并批量插入/更新这些块。我想这对任何人来说都是清楚的。
-
@BuhakeSindi 我看不到在关闭连接的情况下它如何保存数据以防丢失。
标签: java postgresql jdbc database-connection