我正在创建一种算法,从数据库中删除属于字符串一部分的名称。我使用 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/