oracle数据库java.sql.SQLException: 结果集已耗尽,总是跳不出while(rs.next())循环,请求高手帮忙解决!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库java.sql.SQLException: 结果集已耗尽,总是跳不出while(rs.next())循环,请求高手帮忙解决!相关的知识,希望对你有一定的参考价值。

把你的异常信息发出来
rs,ps,conn使用完都不关闭,这会影响后续程序的使用
你是第一次访问就报异常,还是多次访问之后报异常?
先找到你程序里访问数据库的地方,把conn,ps,st神马的使用完都关了看看效果
参考技术A 你的SQL中有循环么?追问

有,是循环ResultSet的时候把数据封装到对象的时候出错!在网上找了很多资料也都是说是ResultSet游标的问题,但是没有明确的解决方法!不知道你有没有遇到过以及你的解决方法是什么?

追答

你的循环没有结束条件的话 会一直在循环的比如
loop
fetch c_cur into v_a,v_b;
loop;

追问

我已经把访问数据库的封装在一个BaseDao类里面,继承此类查询数据并在while(rs.next())把结果重新封装在一个 entity 里面,在Servlet获取转发到jsp,调试时while(rs.next())和servlet执行完毕之后又重新执行while(rs.next())和servlet,在两者间出现死循环!直接访问就出现java.sql.SQLException: 结果集已耗尽

追答

你有没有 设置 result的取数的回滚游标呢?

追问

这是我写的oracle视图、数据库查询、servlet、目的是想在jsp上面显示出这些数据,小弟刚刚出道,有很多不懂,希望前辈多多指点!谢谢了!

参考技术B 你的结果集有多大,多少条记录,如果结果集太大还是分页或者分批加载的好追问

是在union all 的集合里面,重新筛选的数据,我把它创建为视图了,目前查询结果就7条数据,查询视图循环的时候报java.sql.SQLException: 结果集已耗尽的错误!

java怎么连接oracle数据库

Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");//加入oracle的驱动,“”里面是驱动的路径

String url = "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL";// 数据库连接,oracle代表链接的是oracle数据库;thin:@MyDbComputerNameOrIP代表的是数据库所在的IP地址(可以保留thin:);1521代表链接数据库的端口号;ORCL代表的是数据库名称

String UserName = "root";// 数据库用户登陆名 ( 也有说是 schema 名字的 )

String Password = "2006";// 密码

conn = DriverManager.getConnection(url, UserName, Password);
参考技术A 第一种方法JDBC链接:
public static Connection getConnection()
Connection connection = null;
try
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "xxxxx";
String password = "xxxxxx";
connection = DriverManager.getConnection(url, user, password);
catch (Exception e)
e.printStackTrace();


return connection;


第二种Spring中Bean配置:
<!-- 配置oracle数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value ="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="xxxxxx" />
<property name="password" value="xxxxxxxxx" />
</bean>
参考技术B 用Class.forName方法加载Oracle的JDBC驱动实现类,百度一下有很多示例代码,比知道里格式更清楚

以上是关于oracle数据库java.sql.SQLException: 结果集已耗尽,总是跳不出while(rs.next())循环,请求高手帮忙解决!的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 官方只可以下载oracle11g 版本的数据库 没有了ORACLE 10g 是否ORACLE 10g 过期了 不能在官方下载

java怎么连接oracle数据库

oracle 安装

Oracle学习---初识Oracle

oracle数据库实例名如何修改

如何在linux下重启oracle数据库