有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

获取Java jdbc oracle中已检查的结果集错误

这是用eclipse编写的jdbc代码。我只是尝试将查询结果存储到ResultSet rs并将其添加到字符串名称中。但在执行下面的代码时,我面临着耗尽的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)

注意:我的桌子不是空的

在ternal中创建的表:

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

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


共 (1) 个答案

  1. # 1 楼答案

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

    如果发出了COMMIT但仍然无法看到数据,那么请确保SQL客户端和JDBC程序都连接到同一个数据库,并且正在查询该数据库的同一用户模式