gpt4 book ai didi

java - 如何使用 while 循环使用从结果集中获取的值来更新另一个操作?

转载 作者:行者123 更新时间:2023-11-30 00:05:43 25 4
gpt4 key购买 nike

这是我的java代码:

public int function(String name)
{
int i=0;

int id=0;


try
{
String get_id="SELECT id FROM table_name JOIN tbl_2 ON tbl_name.pk_id = tbl_2.fk_name_id where active_flag=1 and updated_at <= NOW() - INTERVAL 3 MINUTE";

Statement stmt=(Statement) conn.createStatement();
ResultSet rs = stmt.executeQuery(get_id);

while (rs.next())
{
id= rs.getInt("id");

String update="UPDATE table_name SET active_flag=NULL WHERE id="+id+"";
stmt.executeUpdate(update);
}


i=1;
}
catch(Exception e)
{
System.out.println(e);
}


return i;

}

运行此程序时,我收到 SQL 异常:

java.sql.SQLException: Operation not allowed after ResultSet closed

<小时/>

请帮助我以另一种简单的方式执行此操作。我只想用从第一个 SQL 查询获得的值更新同一个表,因为中有 n 个值表和值动态变化,我使用了 while 循环。请帮我解决这个问题。提前致谢。

最佳答案

只需将更新sql语句重写为:

UPDATE table_name 
SET active_flag=NULL
WHERE EXISTS
(
SELECT
NULL
FROM
table_name as tbl
JOIN tbl_2
ON tbl_name.pk_id = tbl_2.fk_name_id
where tbl.active_flag=1
and tbl.updated_at <= NOW() - INTERVAL 3 MINUTE
AND tbl.id=table_name.id
)

关于java - 如何使用 while 循环使用从结果集中获取的值来更新另一个操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571839/

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