获取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 楼答案
未
COMMIT
的数据仅在创建它的会话中可见(如果未COMMIT
,则将在会话结束时ROLLBACK
)。如果看不到数据,请确保在SQL客户机中发出了COMMIT
命令如果发出了
COMMIT
但仍然无法看到数据,那么请确保SQL客户端和JDBC程序都连接到同一个数据库,并且正在查询该数据库的同一用户模式