Java:SQL 查询:更新列后 rs.next() 为假

标签 java sql

我有一个奇怪的问题。我有一个数据库,我想更改列的值。这些值保存在 Arraylist(时间列表)中。

为了在右行中写入值,我有第二个 Arrylist(名单)。所以我想读取数据库中的第一行,然后检查名单并找到名称。比我从时间列表中取出匹配值并将其写入数据库到行中的“follows_date”列中,与名称匹配。

然后我读取数据库的下一行,直到没有更多的条目。

所以奇怪的是,如果我在数据库中不做任何更改,while(rs.next()) 部分会起作用。

例如:

ResultSet rs = statement.executeQuery("SELECT username FROM users");
      while(rs.next()){

          // read the result set
          String name = rs.getString("username");
          System.out.println("username = " + name); //liest die namen
          }
      }

这会逐个打印我的名字。但是当我更改表格时,while 循环在那之后结束。 (没有错误,程序刚刚结束)

ResultSet rs = statement.executeQuery("SELECT username FROM users");
      while(rs.next()){

          // read the result set
          String name = rs.getString("username");
          System.out.println("username = " + name); //writes the name

        //look, if name is in Arraylist "namelist"). if yes, than write the matching date from "timelist" into the database.
          if (namelist.contains(name)){
              System.out.println("name found: "+ name);
              int listIndizi = namelist.indexOf(name); //get index
              Long indiziDatum = (long) timelist.get(listIndizi); //get date from same Index
              System.out.println(indiziDatum); // print date so i can see it is correct (which it is)

              statement.executeUpdate("UPDATE users SET follows_date ="+ indiziDatum +" WHERE username = '"+name+"'"); //updates the follows_date column

          }
      }

一切正常,除了现在,while 循环不会在第一段之后继续,而是结束。

最佳答案

一个语句的结果集是关闭的,如果你执行另一个语句,将不会返回进一步的结果。为更新创建一个新的单独语句对象,一切都应该正常工作。

Statement statement1 = connection.createStatement();
Statement statement2 = connection.createStatement();

ResultSet resultSet1 = statement1.executeQuery("SELECT username FROM users");
while(resultSet1.next()){
...
    statement2.executeUpdate("UPDATE users ..."));
}

关于Java:SQL 查询:更新列后 rs.next() 为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39517769/

相关文章:

sql - 加入并更新同一列sql server

sql - 使用 SQL 在库存中实现 FIFO

java - 同时向一个 URL 发送多个 POST 请求

java - 检查 2 个字符串是否包含相同的字符?

java - 字符串最后一个字符的 String.format() 格式

sql - Postgresql 应用程序插入和触发器性能

SQL 连接前 1 个表

JAVA: getRGB() 从透明像素返回什么值?

java - HTTP 状态 400 - Spring MVC 错误

php - 通过数据库搜索不起作用