检索和更新字段 java
Retrieve and update field java
使用Java我想从我的数据库中获取所有ID和selectGW_STATUS如果等于0。我使用下面的SQL语句来实现这个。
PreparedStatement get_id = con.prepareStatement("SELECT ID from SF_MESSAGES where GW_STATUS = 0");
获得 ID 后,我想根据 ID 将 GW_STATUS 更新为 1,如下面的代码所示,但是当我执行代码时只有一个字段被更新。
PreparedStatement update = con.prepareStatement("update SF_MESSAGES set GW_STATUS=? where ID = ?");
update.setInt(1,1);
ResultSet x = get_id.executeQuery();
while(x.next()){
int uber = x.getInt(1);
int array[] = new int[] {uber};
for (int value : array) {
System.out.println("Value = " + value); //Successfully obtains and prints each ID from the databse table
update.setInt(2,value); // Only one ID is updated therefore only field updated
}
}
int result = update.executeUpdate();
System.out.println(result + " Records updated");
我试过在 for 循环中使用另一个更新语句来更新获得的每个 ID,但这也不起作用。如何根据 ID 成功更新每个字段?
你可以让整个过程变得简单很多。事实证明,您只想更新 SF_MESSAGES,其中 GW_STATUS 等于 0,因此您的查询可能如下所示:
update SF_MESSAGES set GW_STATUS=1 where GW_STATUS=0
因此,您不必获取 ID、遍历它们,这是更有效的解决方案。
使用Java我想从我的数据库中获取所有ID和selectGW_STATUS如果等于0。我使用下面的SQL语句来实现这个。
PreparedStatement get_id = con.prepareStatement("SELECT ID from SF_MESSAGES where GW_STATUS = 0");
获得 ID 后,我想根据 ID 将 GW_STATUS 更新为 1,如下面的代码所示,但是当我执行代码时只有一个字段被更新。
PreparedStatement update = con.prepareStatement("update SF_MESSAGES set GW_STATUS=? where ID = ?");
update.setInt(1,1);
ResultSet x = get_id.executeQuery();
while(x.next()){
int uber = x.getInt(1);
int array[] = new int[] {uber};
for (int value : array) {
System.out.println("Value = " + value); //Successfully obtains and prints each ID from the databse table
update.setInt(2,value); // Only one ID is updated therefore only field updated
}
}
int result = update.executeUpdate();
System.out.println(result + " Records updated");
我试过在 for 循环中使用另一个更新语句来更新获得的每个 ID,但这也不起作用。如何根据 ID 成功更新每个字段?
你可以让整个过程变得简单很多。事实证明,您只想更新 SF_MESSAGES,其中 GW_STATUS 等于 0,因此您的查询可能如下所示:
update SF_MESSAGES set GW_STATUS=1 where GW_STATUS=0
因此,您不必获取 ID、遍历它们,这是更有效的解决方案。