并发时出现的 java.sql.SQLException: 关闭的 Resultset: next
程序如果有几十个并发数的时候,会出现“java.sql.SQLException: 关闭的 Resultset: next”的异常。
这个异常一般会是因为在rs.next()之前就关闭了Statement对象才会有的。
但是,程序如果在单线程的情况下就没有此问题,不知道大家有什么解决的办法来避免这个问题,部分代码如下:
//conn为Connection对象。在整个的程序中,是一个静态变量
stmt = conn.createStatement();
rsRow = stmt.executeQuery(strSQL);
// 获取记录
while (rsRow.next()) { //程序在此处报错
stateList.add(rsRow.getString("execute_state"));
}
rsRow.close();
stmt.close();
rsRow = null;
stmt = null;
异常信息:
java.sql.SQLException: 关闭的 Resultset: next
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:175)
at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next()Z(Unknown Source)
at com.ngoss.framework.db.impl.WorkorderDAOImpl.selectWorkOrder(WorkorderDAOImpl.java:347)
at com.ngoss.framework.impl.RequestManagerImpl.selectWorkOrder(RequestManagerImpl.java:110)
这个异常一般会是因为在rs.next()之前就关闭了Statement对象才会有的。
但是,程序如果在单线程的情况下就没有此问题,不知道大家有什么解决的办法来避免这个问题,部分代码如下:
//conn为Connection对象。在整个的程序中,是一个静态变量
stmt = conn.createStatement();
rsRow = stmt.executeQuery(strSQL);
// 获取记录
while (rsRow.next()) { //程序在此处报错
stateList.add(rsRow.getString("execute_state"));
}
rsRow.close();
stmt.close();
rsRow = null;
stmt = null;
异常信息:
java.sql.SQLException: 关闭的 Resultset: next
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:175)
at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next()Z(Unknown Source)
at com.ngoss.framework.db.impl.WorkorderDAOImpl.selectWorkOrder(WorkorderDAOImpl.java:347)
at com.ngoss.framework.impl.RequestManagerImpl.selectWorkOrder(RequestManagerImpl.java:110)
...全文
相关推荐
Java读取数据库记录并以表格形式显示.rar
Java读取数据库记录并以表格形式显示读取结果,类似于VB 、VC中的DataGrid数据网格控件所实现的功能,这里使用的是Java中的PreparedStatement对象。
10. RS的用法
NULL 博文链接:https://zhiyongliu.iteye.com/blog/1688245
什么是Java的数据库连接技术?Java中常用的数据库连接方式有哪些?(java面试题附答案).txt
Java的数据库连接技术是指在Java程序中与数据库建立连接并进行数据交互的技术。通过数据库连接技术,Java程序可以执行各种数据库操作,如查询、插入、更新和删除数据等。 Java中常用的数据库连接方式有以下几种: JDBC(Java Database Connectivity): JDBC是Java提供的标准数据库连接API,可以与各种关系型数据库进行交互。JDBC提供了一组接口和类,用于连接数据库、执行SQL语句并处理结果集。使用JDBC连接数据库的步骤包括加载数据库驱动程序、建立连接、创建Statement对象、执行SQL语句并处理结果。
Java数据库结果集和元数据总结及应用实例
Java数据库结果集和元数据总结及应用实例。不保证文章的可阅读性和例子的完整性,主要给自己看的!
mysql-connector-java.zip
资源下载



