jdbc连mysql报错:java.sql.SQLException:Before start of result

Connection con;
        Statement sql;
        ResultSet rs;
        try{
            Class.forName("com.mysql.jdbc.Driver");
        }
        catch(Exception e){}
        try{
            
            String uri = "jdbc:mysql://127.0.0.1/librarysystem";
            String user = "root";
            String password = "512008";
            con = DriverManager.getConnection(uri, user, password);
            sql = con.createStatement();
            rs = sql.executeQuery("select * from b");
            //while(rs.next()){
                out.println(rs.getString(1));
            //}
        

解决办法就是加上注释掉的代码。

在对结果集ResultSet进行操作之前,一定要先用ResultSet.next()将指针移动至结果集的第一行

API对next()方法的描述:

......
将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。 
当调用 next 方法返回 false 时,光标位于最后一行的后面。
......

原文地址:https://www.cnblogs.com/AbsolutelyPerfect/p/7806370.html