如何使用JAVA
获取Mysql DB中的所有数据我有这段代码,但他只获得第一行
if (connection != null) {
System.out.println("You made it, take control your database now!");
Statement st = connection.createStatement();
String sql = ("SELECT * FROM nc;");
ResultSet rs = st.executeQuery(sql);
if(rs.next()) {
int id = rs.getInt("id");
String str1 = rs.getString("Name");
String str2 = rs.getString("City");
System.out.format("%s, %s, %s\n", id, str1, str2);
我进入屏幕:id 0,名字Nizar,City Casablanca
所以ican如何获取我的数据库中的所有行并谢谢
答案 0 :(得分:2)
如果您使用该块只执行一次。如果您使用该块将执行,直到条件为假
使用while
代替if
while(rs.next()) {
int id = rs.getInt("id");
String str1 = rs.getString("Name");
String str2 = rs.getString("City");
System.out.format("%s, %s, %s\n", id, str1, str2);
}
rs.next()
所有记录完成后将返回false
答案 1 :(得分:0)
将您的if
更改为while
...
while(rs.next()) {
int id = rs.getInt("id");
String str1 = rs.getString("Name");
String str2 = rs.getString("City");
System.out.format("%s, %s, %s\n", id, str1, str2);
}
答案 2 :(得分:0)
将if(rs.next())
替换为while(rs.next())
。
if(rs.next())
表示“如果我们有一个结果,请转到它并执行以下操作”
while(rs.next())
表示“我们仍有结果,请转到下一个并执行以下操作”。
答案 3 :(得分:0)
您想要更改if (rs.next()) {
成为while(rs.next()) {
你只是按原样迭代一行,这将迭代所有行。
作为最佳做法,不要让while(...)循环的内容过于花哨。您希望在迭代时最小化每行处理,因此连接不会保持打开太长时间。许多人只是将行读入List,或者将它们打印出来(就像你正在做的那样)。