代码之家  ›  专栏  ›  技术社区  ›  1m9K

结果集。next()不检索行

  •  0
  • 1m9K  · 技术社区  · 8 年前

    我的代码即将访问我的数据库“toursdb”,并获得一些结果。我正在使用命令行和javadb。当我使用 con.getMetaData 我确实有结果。使用时相同 rs.getMetaData . 我没有连接问题。但我的程序bellow不打印任何内容。

    //
    import java.sql.*;
    class JDBCTest
    {
        public static void main(String ... args) {
            String url = "jdbc:derby://localhost:1527/c:/derbytuto/toursdb";
            StringBuilder sb = new StringBuilder();
            String query = "select * from AIRLINES";
    
            try {
                Connection con = DriverManager.getConnection(url);
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery(query);
    
                while(rs.next()) {
                    sb.append(rs.getString("AIRLINE") + " ");
                    sb.append(rs.getString("AIRLINE_FULL" + "\n");
                }
                System.out.println(sb);
            } catch(SQLException x) {
                x.printStackTrace();
            }
        }
    }
    //
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Ravi    8 年前

    con.getMetaData 检索此ResultSet对象列的数目、类型和属性。 所以,这不能保证表是否有数据。

    如果你的程序没有打印出任何意味着它不会进入内部的内容 while 循环,这意味着您的查询没有返回行。

    您可能已经填充了数据,但是 您需要提交这些数据 ,以将其反映/保存到数据库中 否则,您将无法在另一个数据库会话中看到数据。