我看过几篇关于这个主题的帖子(post1,post2,post3)。在所有这些问题中,解决方案看起来都很容易,但我无法得到返回值的值。
这是我到目前为止所尝试的:
备选办法1:
int affectedRows =pstmt.executeUpdate();
ResultSet rs = pstmt.getResultSet();
if (rs.next())
updated = rs.getBoolean(1);
ResultSet rs =pstmt.executeQuery();
if (rs.next())
{updated = rs.getBoolean(1);}
备选案文3:
boolean hasResult =pstmt.execute();
logger.info("hasResult: " + hasResult);
//if (hasResult) {
ResultSet rs = pstmt.getResultSet();
if (rs.next())
updated = rs.getBoolean(1);
//}
logger.info("updated: " + updated);
结果:java.lang.nullpointerException
原因,如果(rs.next())
还注意到hasresult:false
创建到Java代码中的查询如下所示:
INSERT INTO public."tablename"( "field1", "field2", ...,"field n")
VALUES('value1','value2',...,'value n')
ON CONFLICT ("UniqueID")
DO UPDATE SET "field1" = 'value3' ,..., "Updated"=true
RETURNING "Updated"
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.12</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>postgres-socket-factory</artifactId>
<version>1.0.15</version>
</dependency>
和连接字符串:
jdbc:postgresql://google/postgres?cloudSqlInstance=<...>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=<...>&password=<...>
问题就在这里:
PreparedStatement pstmt = conn.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS);
在创建PreparedStatement pstmt
对象时,我使用了statement.return_generated_keys
statement.return_generated_keys
常量与getGeneratedKeys一起使用,以获得该执行所创建的所有行的自动生成键。
PreparedStatement pstmt = conn.prepareStatement(SQL);
我在试用GraphQL。我从postgresql中提取数据,除了一个问题,解析在查询完成之前就完成了,其他一切似乎都能正常工作。我以为我的查询承诺工作正常。这里是我为查询数据库而创建的类: 下面是我的graphql查询: 我注释了我的结果,只是想了解一下返回静态内容的情况,结果似乎在then()内时不会返回到graphisql(这意味着在then()之前完成的解析)。输出: } 我可以通过将静态返
问题内容: 我没有从服务器获得JSON类型数据的响应。 我正在使用JSON插件。 如果我没有得到任何回应,但是如果我没有任何回应,那么我正在获取页面的HTML格式。 控制台错误: -找不到动作或结果没有为动作action.Part和结果定义结果。 我没有获得有关jQuery成功的数据。请纠正我,这是怎么了? 问题答案: 使用A 来指定在执行操作和结果时从回调函数返回的数据类型,以及从服务器返回的响
问题内容: 愚蠢但简单的示例:假设我有一个表“ Item”,其中保存接收到的项目的总数。 项目名称是此处的主键。每当我收到数量为X的物料A时,如何实现以下目标。 如果该商品不存在,则为商品A插入一个新的摘要,并将库存商品设置为X;如果存在一条记录,其中库存商品为Y,则库存商品的新值为(X + Y) 我的问题是我的实际表中有多个列。在更新部分中编写多个select语句是一个好主意吗? 我当然可以用代
原文是这样的: 这确实令人惊讶,但最终明白了(嗯,至少我想我明白了)为什么会这样发生。 现在,我将第二个更改为: 如果我遗漏了一些明显的东西,或者我的问题是愚蠢的,让我提前说声对不起。还有谢谢你!
问题内容: 我有一个Android应用程序项目,突然停止工作。显然没有错误,但是当我尝试启动时,我得到了: 执行Aapt时出错:返回码139 我试图清理该项目及其相关的库项目,重新启动Eclipse,更新为最新的ADT和SDK版本,等等,但是都失败了。有时我还会遇到其他错误(不进行任何更改): 生成最终归档文件时出错:java.io.FileNotFoundException:… / bin /
问题内容: 在运行该行之后,在指令指针返回到调用函数之前,是否可以看到方法的返回值? 我正在调试无法修改的代码 (阅读:不想重新编译第三方库) ,有时它会跳转到我没有源代码的代码,或者return表达式具有使我无法继续工作的副作用只需在“ 显示” 标签中运行表达式即可。 通常在复合语句中使用返回值,因此 Variables 视图将永远不会向我显示该值(因此希望在控件返回到调用函数之前先查看结果)。