gpt4 book ai didi

java - 返回子句失败(postgres 9.3,jdbc)

转载 作者:行者123 更新时间:2023-11-29 12:58:36 25 4
gpt4 key购买 nike

我查看了几个链接以使用 java 插入检索 id,我想我会使用 RETURNING 子句。

我的代码:

Connection c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/testdb?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory", "postgres","root");
String sql = "INSERT INTO main (nom_fichier, adate, mdate, cdate, size, chunknumber)"
+ " VALUES ('test',450,450,450,450,5)"
+ " Returning id"
+ ";";
Statement stmt = c.createStatement();
int rowNumber = stmt.executeUpdate(sql);

但是我得到这个错误:

Exception in thread "main" org.postgresql.util.PSQLException: a result was returned when none was expected.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:339)
at fr.infotel.postgre.TestPostgre.main(TestPostgre.java:25)

我还尝试使用 Statement.RETURN_GENERATED_KEYS(没有 Returning 子句)但没有成功(结果集中没有任何内容)。

第一个问题:我想让 RETURNING 语句起作用,因为我的请求在 psql 中有效

第二个问题:如果第一个问题不可能,我怎么能得到相同的结果

我正在使用带有 postgres9.3.jdbc3 jar 的 postgres 9.3。

感谢您的帮助。

最佳答案

使用ResultSet对象代替rowNumber

ResultSet resultSet = stmt.executeQuery(sql);

您的查询结果现在在 resultSet 变量中。

关于java - 返回子句失败(postgres 9.3,jdbc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com