如何使用Java从Mysql DB中的表中获取所有数据

时间:2013-06-05 08:15:06

标签: java mysql database

如何使用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如何获​​取我的数据库中的所有行并谢谢

4 个答案:

答案 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,或者将它们打印出来(就像你正在做的那样)。