借口: 开始我想告诉你,我不是一个专家级的java程序员,也不知道arrayLists和迭代的所有细节。到目前为止,我已经走过了一段很长的路,但我不知道我的问题,因为我对Java中的Lists很少有经验。java - arraylist迭代,不打印出第一行
问题: 我试图把我的SQL查询结果(结果集(我想这也是一个数组列表,所以IM可能使用它不需要双数组列表))到ArrayList中,之后,我尝试将每行打印到控制台中,但遇到第一行未打印的问题。
解决方案: 我很好,只要下面有两种情况:1.将导致正常阵列(所以没有ArrayList中),这使得它更容易为我,因为我知道如何处理数组。 2.你们能告诉我为什么第一行不会被打印
我的数据库: 我有两个colums,第一个是主键(ID),第二个是一个命令(字符串( VARCHAR)我想,一旦我得到它来执行
我的代码:
public List<String> getCommands(){
String sql = "SELECT * FROM query";
try {
PreparedStatement stmt = CONNECTION.prepareStatement(sql);
ResultSet results = stmt.executeQuery();
if (results.next()) {
List<String> row = new ArrayList<String>();
while(results.next()) {
row.add(results.getString(2));
}
return row;
} else {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
List<String> results = SQL.getCommands();
if(results != null){
getLogger().info("Found at least 1 command");
for (Iterator<String> i = results.iterator(); i.hasNext();) {
String row = i.next();
getLogger().info("command: " + row);
}
}else{
getLogger().info("Can't find commands");
}
我的输出:它打印一切exept在数据库中的第一行
您正在调用'results.next()'两次,因此它跳过第一行。你应该删除'if'子句。 – tima
这不是'arraylist迭代'。 – saka1029