我正在使用java.sql在Java中使用Postgres数据库。由于nda无法复制整个代码段,但它看起来像这样:
private final PostgresConnection postgresConnection = PostgresConnection.getInstance();
preparedStatement = postgresConnection.getConnection().
prepareStatement("Insert into someTable(someColumn) values(?) RETURNING id");
preparedStatement.setString(i, (String) someParam);
resultSet = preparedStatement.executeQuery();
resultSet.next();
ResultSetMetaData meta = resultSet.getMetaData();
LOGGER.info("column count {}", meta.getColumnCount());
LOGGER.info("column type {}", meta.isAutoIncrement(0));
查询在查询工具(PgAdmin 4)中运行良好。它返回单列单行结果。但是,在Java中,结果集拒绝给我任何东西。在上面的代码中,与meta.isAutoIncrement(0)
类似的最后一行resultSet.getInt(0)
给出了对我来说没有意义的相同错误:
The column index is out of range: 0, number of columns: 1.
这就像列数组秘密为空,即使resultSet不知道这一点。