2013-06-05 15 views
1

我怎样才能获得在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如何得到我的数据库中的所有行,并感谢您

+3

use'while(rs.next())' – andreih

回答

2

如果使用该块仅执行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时,所有的记录都完成

+0

我们不知道它。 OP的主要错误是他没有通过结果集进行筛选。 – reporter

+0

我不知道他是如何在未被标记为版本的情况下更改答案的...... – m0skit0

0

更改ifwhile ...

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);  
} 
0

while(rs.next())替换if(rs.next())

if(rs.next())的意思是“如果我们有一个结果,迁移到它,做下面的”

while(rs.next())手段“虽然我们仍然有结果的,移动到下一个,然后执行以下”。

0

你想改变你的if (rs.next()) { 要成为一个while(rs.next()) {

你只能通过一个行迭代,因为它是,将通过所有这些迭代。

作为最佳实践,不要让while(...)循环的内容太花哨。您希望在迭代时最小化每行处理,因此连接不会保持太长时间。很多人只是将行读入列表中,或者将其打印出来(就像你正在做的那样)。

相关问题