【问题标题】:postgres multiple JDBC select statements in batchpostgres批处理多个JDBC select语句
【发布时间】:2013-06-11 01:15:02
【问题描述】:

如何向 Postgres 发出一个包含 2 个选择语句的 JDBC 调用?这两个 select 语句从不同的表集中选择并返回两个不同的结果集 - 所以不能联合。目标是确保在选择出现问题的那一刻,从数据库中读取的是表中数据的一致快照。如果发出两个单独的 select 语句,则有可能在第一个 select 之后和第二个 select 之前更新某些数据。

看起来 java.sql.Statement 的 addBatch() 和 executeBatch() 不能使用 - 这只能用于更新。尝试将它与 select 一起使用会导致 PSQLException 并显示消息“A result was returned when none is expected”。在 executeBatch() 上。

【问题讨论】:

    标签: sql postgresql select jdbc batch-processing


    【解决方案1】:

    您无需为此跳过任何障碍。只需BEGIN 一个事务在SERIALIZABLE 隔离中,两条语句就会看到一致的数据视图。

    the JDBC tutorial

    没有其他方法可以确保两个语句看到相同的数据。您可以将它们一起发送,但除非它们包含在事务中,否则它们仍然可以看到不同的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多