gpt4 book ai didi

java尝试使用资源: empty result set

转载 作者:行者123 更新时间:2023-12-02 11:13:26 25 4
gpt4 key购买 nike

我正在尝试使用 java try-with-resources 语句更新数据库中的用户。但是,我收到一条返回错误消息,表明我的结果集为空。阅读了其他各种帖子后,他们建议使用 ps.executeUpdate() 而不是 ps.executeQuery(),但这会返回一个 int ,其中(声明非常明显)没有“Auto closable”类型,这意味着代码确实连编译都没有通过。

有人有如何绕过这个的例子吗?

public void updateUser (String id, String value){

try (Connection con = DriverManager.getConnection("jdbc:databasetype://localhost:5432/database");
PreparedStatement ps = createUpdateStatement(con, id, value);
ResultSet rs = ps.executeQuery())
{
System.out.println("Add operation completed");
} catch(Exception e) {
System.out.println("Exception: " + e.getMessage() + " Thrown by: " + e.getClass().getSimpleName());
}
}

最佳答案

如果资源实现了Closeable,那么您只需要尝试中的资源。正如您所说,原始整数不能将其从 try-with-resources 移出并移入正文:

public void updateUser (String id, String value)
{
try (Connection con = DriverManager.getConnection("jdbc:databasetype://localhost:5432/database");
PreparedStatement ps = createUpdateStatement(con, id, value))
{
int result = ps.executeUpdate();
System.out.println("Add operation completed");
} catch(Exception e) {
System.out.println("Exception: " + e.getMessage() + " Thrown by: " + e.getClass().getSimpleName());
}
}

关于java尝试使用资源: empty result set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50449901/

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