java - ArrayList 类在离开 while 循环后丢失变量

标签 java sql jdbc arraylist

我正在创建一种算法,从数据库中删除属于字符串一部分的名称。我使用 JDBC 客户端获取所有值并将它们保存在 ArrayList 中。但由于某种原因,某些变量在离开 while(resultset.next()) 循环后会丢失其值

public void getAllReqInfo(){
    //ArrayList from the class "req"
    reqArrayList = new ArrayList<req>();
    try {
        Statement stmt = con.createStatement();
        String query = "SELECT * FROM req";
        ResultSet resultSet = stmt.executeQuery(query);

        while (resultSet.next()){
            //class with all the columns from the database
            req req = new req(resultSet.getInt("id"),
                              resultSet.getString("comments"));

        reqArrayList.add(req);

        //Comments != null
        System.out.println(reqArrayList.get(0).getComments());

        //Id != null
        System.out.println(reqArrayList.get(0).getId());


        } // End of while

        //Comments == null
        System.out.println(reqArrayList.get(0).getComments());

        //Id != null
        System.out.println(reqArrayList.get(0).getId());
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

“req”类是一个自动生成的类,具有 getter 和 setter 方法。

我不知道为什么会出现这种情况,无论如何我都想寻求帮助

最佳答案

reqArrayList.get(0)

您只打印循环中和循环后的第一个请求。

要转储全部,请执行

for (req myReq:reqArrayList){
    System.out.println(myReq.getId()+" "+myReq.getComments());
}

关于java - ArrayList 类在离开 while 循环后丢失变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541579/

相关文章:

java - JVM -XX :MaxRAM option can be correctly used? 如何

java - 将instanceof 与其他继承数据一起使用时的混淆

java - 利润最大化,作业调度

sql - 使用 for 循环 bat 文件窗口进行多个命令调用

java - 创建格式为 "yyyy-mm-dd"的变量 Date

java - ArrayList 和 ObservableList 有什么区别?

c# - 更新数千条记录的最有效方法是什么

sql - 在表上实现语句级触发器时,是否可以获取所有受影响行的 OLD 和 NEW 记录?

java - 填写表格中的缺失值

java - JDBC Hibernate - Mysql 连接错误