首页 > 解决方案 > Postgresql JDBC 有时不能选择刚刚插入的

问题描述

我使用 HikariDataSource 获取连接并将数据插入 Postgresql,最后提交。然后用相关参数选择,但并不总是能得到结果。

这是数据源创建代码:

      props.setProperty("dataSourceClassName","org.postgresql.ds.PGSimpleDataSource");
      props.setProperty("dataSource.serverName", hostname);
      props.setProperty("dataSource.user", username);
      props.setProperty("dataSource.password", password);
      props.setProperty("dataSource.databaseName", database);
      props.setProperty("dataSource.portNumber", "5432");

      HikariConfig config = new HikariConfig(props);
      config.setAutoCommit(false);

      datasource = new HikariDataSource(config);

插入数据代码:

try {
  conn = datasource.getConnection();
  stat = conn.prepareStatement(sql);
  int count = stat.executeUpdate();
} finally {
  stat.close();
  conn.commit();
  conn.close();
}

选择代码:

try {
  conn = datasource.getConnection();
  String sql = ... // sql with associated parameters
  stat = conn.createStatement();
  ResultSet rs = stat.executeQuery(sql); // sometimes no result, need to wait a while.
  rs.close();
} finally {
  stat.close();
  conn.close();
}

代码没有并发,我想要的是每个插入都可以选择并且无需等待。希望有人能帮忙,谢谢。

标签: postgresqljdbc

解决方案


推荐阅读