【发布时间】:2019-10-12 08:30:21
【问题描述】:
我正在尝试基于 ResultSet 创建一个 ArrayList。使用 while 循环遍历所有行,我只能获得第一行(使用 rs.next() 和 rs.first())以及最后一行(rs.last())。
public ArrayList retrieveFromDb(Statement myStmt){
try{
ArrayList<String> inner = new ArrayList<>();
String query = "SELECT * FROM product";
ResultSet rs = myStmt.executeQuery(query);
while(rs.next()){
System.out.println(rs.getString("barcode"));
inner.add(rs.getString("barcode"));
System.out.println("done");
return inner;
}
} catch (SQLException ex) {
Logger.getLogger(Product.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
我需要的是 ArrayList 从所有行中获取信息。
更新:看起来我未能正确返回列表,因为太早返回它(如下面的答案中指出的那样。)
【问题讨论】:
-
Resultset To List的可能重复
-
您已将 return 内部语句放在 while 循环中。将 return 语句放在 while 循环之外并尝试。
-
您好@FranciscoMateo,感谢您抽出宝贵时间阅读我的问题。不幸的是,可能的重复并没有帮助我。如果我错过了什么,请告诉我。
-
可能的重复对我没有帮助。然后解释为什么会这样。
标签: java mysql arraylist resultset