怎样才能从表中的所有数据在MySQL数据库与Java
问题描述:
我怎样才能获得在MySQL数据库中的所有数据与JAVA怎样才能从表中的所有数据在MySQL数据库与Java
我有这样的代码,但他得到的只有第一排
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,名称尼扎尔,城市卡萨布兰卡
所以ICAN如何得到我的数据库中的所有行,并感谢您
答
如果使用该块仅执行once.If您同时使用集团k将执行,直到条件为假
使用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())
。
if(rs.next())
的意思是“如果我们有一个结果,迁移到它,做下面的”
while(rs.next())
手段“虽然我们仍然有结果的,移动到下一个,然后执行以下”。
答
你想改变你的if (rs.next()) {
要成为一个while(rs.next()) {
你只能通过一个行迭代,因为它是,将通过所有这些迭代。
作为最佳实践,不要让while(...)循环的内容太花哨。您希望在迭代时最小化每行处理,因此连接不会保持太长时间。很多人只是将行读入列表中,或者将其打印出来(就像你正在做的那样)。
use'while(rs.next())' – andreih