在 Java jdbc oracle 中获取 Exausted ResultSet 错误

Getting Exausted ResultSet Error in Java jdbc oracle

这是jdbc的代码,用eclipse写的。我只是想将查询结果存储到 ResultSet rs 并将其添加到 String name。但是在执行下面的代码时,我遇到了 Exhausted Resultset 错误。

import java.sql.*;

public class DemoClass{
    public static void main(String args[]) throws Exception{
        
        String query = "SELECT name FROM Emp WHERE rollno=1";

        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "Subhro", "Kabiraj");
        
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery(query);
        rs.next();
        String name = rs.getString("name");
        
        System.out.println(name);
        
        st.close();
        con.close();
    }
}

ERROR:

Exception in thread "main" java.sql.SQLException: Exhausted Resultset
    at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
    at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
    at DemoClass.main(DemoClass.java:14)

注意:我的table不是空的。

TABLE 在终端中创建:

SQL> INSERT INTO Emp(rollno, name) values(1, 'abc');

1 row created.

SQL> INSERT INTO Emp(rollno, name) values(2, 'def');

1 row created.

SQL> INSERT INTO Emp(rollno, name) values(3, 'ghi');

1 row created.

SQL> select * from Emp
  2  ;

    ROLLNO
----------
NAME
--------------------------------------------------------------------------------
     1
abc

     2
def

     3
ghi


SQL> SELECT name FROM Emp WHERE rollno=1;

NAME
--------------------------------------------------------------------------------
abc

关于如何消除此错误的任何建议。

UnCOMMITted 数据仅在创建它的会话中可见(如果尚未 COMMITted,则将在会话结束时 ROLLBACK 可见)。如果您看不到数据,请确保您在 SQL 客户端中发出了 COMMIT 命令。

如果您发出了 COMMIT 但仍然看不到数据,请确保 SQL 客户端和 JDBC 程序都连接到同一个数据库并且正在查询该数据库的同一用户架构。