`
sjsky
  • 浏览: 917984 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java.sql.SQLException: 对只转发结果集的无效操作

阅读更多

   blog迁移至 :http://www.micmiu.com

 

错误代码如下:

写道
java.sql.SQLException: 对只转发结果集的无效操作: previous
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.driver.BaseResultSet.previous(BaseResultSet.java:111)

产生原因:

 

异常出现于移动结果集的指针时,原因是在生成statement对象的时候提供的参数不同 无参数的那个方法使用的是默认参数,statement执行后得到的结果集类型为 ResultSet.TYPE_FORWARD_ONLY.这种类型的结果集只能通过rs.next();方法逐条读取,使用其他方法就会报异常.

 

解决办法:

 

需要在Statement或PrepareStatement 的实例化中加入参数使其可以回滚:

ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY

 

把:Statement stmt= conn.createStatement(); 修改为:
Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

 

把:pstmt = sqlCon.prepareStatement(sql);  修改变为:

PrepareStatement p stmt =conn.prepareStatement (sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

 

参数说明:

  • ResultSet.TYPE_FORWARD_ONLY  :默认,这种类型的结果集只能通过rs.next()读取
  • ResultSet.TYPE_SCROLL_INSENSITIVE :双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
  • ResultSet.TYPE_SCROLL_SENSITIVE : 双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。
  • ResultSet.CONCUR_READ_ONLY :只读取ResultSet
  • ResultSet.CONCUR_UPDATABLE :用ResultSet更新数据库

 

 

转载请注明来自:Michael's blog @ http://sjsky.iteye.com

 

-----------------------------------分 ------------------------------------隔 ------------------------------------线 --------------------------------------

分享到:
评论

相关推荐

    解决Exception java.sql.SQLException ORA-00600 内部错误代码

    在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码

    oracle ora-各种常见java.sql.SQLException归纳

    ORA-01001 是一个常见的错误信息,通常发生在无效指针操作时。这种错误通常是由于开发者在编写 PL/SQL 语句时,忘记了某个指针的状态,导致 Oracle 无法执行指针操作。解决这个错误的方法是,检查 PL/SQL 语句中的...

    JDBC驱动for sqlserver、oracle、mysql

    在Java中进行数据库开发,首先需要了解SQL语句,包括DQL(查询)、DML(操作)、DDL(定义)和DCL(控制)。此外,JDBC API提供了Statement、PreparedStatement和CallableStatement接口,用于执行SQL语句。...

    解决IDEA错误 Cause: java.sql.SQLException: The server time zone value的问题

    标题中的问题“Cause: java.sql.SQLException: The server time zone value”是Java开发者在使用IDEA(IntelliJ IDEA)进行数据库连接时常见的错误提示。这个错误通常发生在尝试连接到MySQL等SQL数据库时,由于...

    JAVA常见异常解析,面试用

    - **java.sql.SQLException**:处理数据库操作时,当发生错误或异常情况时抛出。 - **java.io.IOException**:表示输入/输出操作失败或中断时抛出。 - **java.lang.NoSuchMethodException**:当试图调用不存在的方法...

    常见的java异常.pdf

    7. **`java.sql.SQLException`**:处理数据库操作时,如果发生错误,如连接问题、查询语法错误或数据源不可用,就会抛出此异常。确保数据库连接配置正确,SQL语句无误,并捕获并处理异常。 8. **`java.io....

    java常见异常.pdf

    10. **java.sql.SQLException**: 当与数据库交互时发生错误,如SQL查询失败或连接问题,会抛出此异常。使用try-catch语句来处理数据库操作。 11. **java.lang.NoSuchMethodException**: 当试图调用一个不存在的方法...

    kingbase8.Driver

    Java版本 人大金仓ESV8最新版驱动程序,学习使用国产化数据库操作。 金仓通用数据库,可视化操作,毫秒级数据处理,高效准确完成数据处理全过程。面向事务处理类、兼顾分析类应用领域场景,兼容Oracle、国产数据库等多...

    mysql-connector-java-8.0.25-jar

    MySQL Connector/J 8.0.25 是一个用于Java应用程序的数据库驱动程序,它使得Java开发者能够连接到MySQL数据库服务器并执行SQL操作。这个jar文件是MySQL官方提供的,确保了与MySQL服务器的兼容性和稳定性。在本文中,...

    Java的异常类

    - **`java.sql.SQLException`**:操作数据库异常。 - **`java.io.IOException`**:输入输出异常。 - **`java.lang.NoSuchMethodException`**:方法未找到异常。 #### 三、总结 异常处理对于编写健壮和可靠的...

    JAVA常见异常解析

    以下是对Java中一些常见异常的详细解析: 1. **java.lang.NullPointerException**: 当尝试访问或操作一个null引用的对象时,就会抛出此异常。这意味着你试图调用一个未初始化或不存在的对象的方法或属性。避免...

    java异常分析及解决办法

    10. **java.sql.SQLException**: 当与数据库交互时出现错误,例如SQL查询失败或连接问题,会抛出此异常。确保SQL语句语法正确,数据库连接配置无误。 11. **java.lang.NoSuchMethodException**: 当尝试调用一个...

    常见异常处理方案

    11. **`java.sql.SQLException`**: 数据库操作失败时抛出。在与数据库交互时,要捕获并处理这类异常,如连接失败、查询错误等。 12. **`java.lang.NoSuchMethodException`**: 在调用一个不存在的方法时抛出。...

    常见的java异常

    8. **java.sql.SQLException**:在处理数据库操作时,如果SQL查询失败或数据库连接出现问题,会抛出此异常。确保SQL语句正确,数据库连接配置无误,并妥善处理事务和连接关闭。 9. **java.lang....

    一种PL/SQL程序包失效的解决方案

    针对pl/sql 程序包在运行中有时会出现"程序包失效"的异常情况,通过深入分析该错误与对象依赖机制、自动重编机制和程序包运行机制的关系,结合3个不同的实验,证实了该错误与程序包中全局变量/常量的独有特性有关,...

    Java异常大全

    - **`java.sql.SQLException`**:当与数据库交互出现问题时抛出。 - **`java.lang.NoSuchMethodException`**:当反射调用不存在的方法时抛出。 ### 运行时异常 除了上述提到的检查性异常之外,还有一些不需显式...

    用Java连接SQLSERVER2005(体验后的小总结,包括所需要的jar文件、驱动、和一份word文档)

    这是Java编程的最佳实践,因为数据库操作可能会失败,比如网络问题或无效的凭据。 5. **关闭连接**:在完成数据库操作后,记得调用`Connection.close()`方法来释放资源,避免内存泄漏。 6. **Word文档**:在提供的...

    java连接sql2008代码

    在Java编程中,连接SQL Server 2008数据库是一项基本任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。JDBC是Java中用于与各种类型数据库交互的标准化接口,包括SQL Server 2008。下面,我们将详细...

    Mybatis出现ORA-00911: invalid character的解决办法

    今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢? 注意:这里说的是用navicat...

    oracle常见故障类别及规划解析

    无效数据、权限不足、空间分配问题以及应用程序逻辑错误是常见原因。解决方法包括遵循数据约束、授予适当权限、调整用户配额和修复程序逻辑。 2. 用户进程故障,如异常退出或会话终止,通常由PMON后台进程自动处理...

Global site tag (gtag.js) - Google Analytics