繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM