[英]How I can get all data from a table in Mysql DB with Java
如何使用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,卡萨布兰卡市
所以我如何获取数据库中的所有行,谢谢
如果使用则该块仅执行一次如果使用则该块将执行直到条件为false
使用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
将您的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);
}
用while(rs.next())
替换if(rs.next())
while(rs.next())
。
if(rs.next())
意思是“如果有一个结果,请移至该结果并执行以下操作”
while(rs.next())
意思是“当我们仍然有结果时,移至下一个并执行以下操作”。
您想更改if (rs.next()) {
会变成while(rs.next()) {
您仅按原样遍历一行,这将遍历所有行。
最佳做法是,不要使while(...)循环的内容过于花哨。 您希望在迭代时最小化每行处理,因此连接不会保持打开状态的时间过长。 许多人只是将行读入列表,或将其打印出来(就像您在做的那样)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.