我想用下面的代码在arraylist中循环。我得到了一个循环,所有的参数都显示出来了。但它一直在重复,直到sql数据库结束。
ArrayList<Ews> controles = new ArrayList<>();
try {
Connection conn = DriverManager.getConnection(url, username, password);
String query = "SELECT * FROM " + database + ".controle";
java.sql.Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("id");
if (nr == id) {
Ews x = new Ews(rs.getString("datum"), rs.getInt("systole"), rs.getInt("diastole"), +
rs.getInt("pols"), rs.getDouble("temperatuur"));
controles.add(x);
Integer i = 1;
for (Ews controle : controles) {
System.out.println(i + ") " + controle.getDate() +
" - Bloeddruk: " + controle.getSyst() + "/" + controle.getDiast() +
" - Pols: " + controle.getPulse() + " - Temperatuur: " + controle.getTemp());
i++;
}
}
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
我得到了这个结果。
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
6) 24-11-2020 13:16 - Bloeddruk: 160/61 - Pols: 68 - Temperatuur: 36.0
// And so on...
但我想要这个结果
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
6) 24-11-2020 13:16 - Bloeddruk: 160/61 - Pols: 68 - Temperatuur: 36.0
// and so on...
我希望你们能理解我的问题并知道如何解决:)
2条答案
按热度按时间ffscu2ro1#
将for循环移到while循环之外。
谢谢@griffeydog
amrnrhlw2#
问题是你要建立你的列表,然后迭代它。您需要首先完成列表的构建,然后使用输出进行迭代。
以上纯粹是回答你的循环问题希望这有帮助。