java.sql.SQLException: ResultSet not open, operation 'next' not permitted. Verify that autocommit is OFF。
错误翻译:结果集没有打开,next操作不允许。请确认自动提交是否关闭。
最近碰到这个错误弄的很郁闷。查看程序获取连接后明明把autocommit给关闭了,还是报这样错误让人感觉火冒三丈。最终功夫不负有心人,在英文网站找到了解决办法:
Frequently asked questions
Question
I am currently using Cloudscape� 3.5. I have multiple connections, all with autocommit set to false.
I sometimes get this exception after executing a prepared Select-statement and calling the next() method of the ResultSet:
SQL Exception: ResultSet not open, operation next not permitted.
Verify that autocommit is OFF.
As autocommit is turned off for all connections the message is not helpful. Could you explain what this means and how to avoid it?
I had an issue some time ago with multiple connections. It looked as if one connection was blocked by another, although both were only reading some tables. The exception said that 'A lock could not be obtained within the time requested.' I resolved this by committing often, even after reading some tables. Maybe the current issue is related to this?
原因分析:参考上面说的建议以及实现环境,发现程序循环处理结果集,完成400条处理以后就手工提交一次事务,结果就在提交后又取结果集时报上面的错误。
解决办法:就是循环处理结果集,处理完了一次性提交。这种错误一般在所内有限的数据(也就是结果集数据少于400)不会报的,比较隐蔽。
获取一个数据库连接,通过查询获取结果集,对结果集进行操作,如果这时commit事务,在对结果集进行操作就会报上面的错误。
分享到:
相关推荐
在Java编程中,`java.sql.SQLException: 结果集已耗尽` 是一个常见的错误提示,通常出现在处理数据库查询结果集时。这个异常表明程序试图访问已经没有数据的结果集中下一行,即所有行已经被遍历完,尝试访问超出范围...
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
标题中的“Caused by: java.sql.SQLException: JZ0SJ: 没有在此数据库中发现元数据存取器信息。 请按 jConnect 文档中所述安装”是一个典型的错误信息,表明在尝试使用Java数据库连接(JDBC)驱动程序访问数据库时...
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
### 服务器出现java.sql.SQLException No suitable driver found for 的解析与解决方案 #### 问题背景 在进行Servlet开发过程中,尤其是在尝试连接数据库时,遇到了一个常见的异常:“java.sql.SQLException: No ...
- `java.sql.SQLException: ORA-01000: maximum open cursors exceeded`: 当打开的游标超过数据库允许的最大值时会出现此错误。检查代码中游标的关闭情况,避免资源泄漏。 8. **锁冲突** - `java.sql....
java.sql.SQLException: null, message from server: “Host ‘223.72.41.7’ is not allowed to connect to this MySQL server” 客户端访问时报错: 解决方法: 1,登陆服务器 mysql> use mysql; //用mysql ...
它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、插入、更新和删除等操作。Oracle JDBC驱动分为不同版本,包括 Thin、OCI、JDBC-ODBC ...
Q: I am working with ... I am using updateBinaryStream method of resultset to update the BLOB field but it is failing after giving following exception java.sql.SQLException: Internal Error: Unable to
import java.sql.SQLException; ``` 3. **注册驱动**:在使用MySQL驱动前,需要通过`Class.forName()`方法注册驱动。尽管在较新的JDBC版本中这个步骤可以省略,但为了兼容性,很多示例代码仍然包含它: ```java ...
主要给大家介绍了关于MySQL存储表情时报错:java.sql.SQLException: Incorrect string value: 'xF0x9Fx92xA9x0Dx0A...'的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
本文主要介绍了关于MySQL存储表情报错:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\xA9\x0D\x0A…’的相关解决方法,分享出供大家参考学习,下面话不多说了,来一起看看详细的介绍: ...
java.sql.SQLException: Operation not allowed after ResultSet closed java.sql.SQLException: QueryRunner requires a DataSource to be invoked in this way, or a Connection should be passed in
1. **驱动未导入**:Java运行环境的类路径中没有包含MySQL JDBC驱动的`.jar`文件。 2. **版本不匹配**:你使用的JDBC驱动版本可能与你的MySQL服务器版本不兼容。 3. **加载问题**:驱动没有被正确地加载到Java虚拟机...
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 提示的是用户访问被拒绝,原因是密码不正确,但是我们明明配置的是正确的密码,原因就在yml中: spring: datasource: ...
- Type 2:Java-Net-ODBC桥,依赖于ODBC驱动程序。 - Type 3:完全基于网络的驱动,通过中间服务器与数据库通信。 - Type 4:纯Java的网络驱动,直接与数据库进行通信,无需中间层。 2. SQLServer JDBC驱动: ...
当你尝试连接到MySQL数据库时,可能会遇到一个特定的异常:“java.sql.SQLException: The server time zone value ‘?й???????’ is unrecognized or represents more than one time zone”。这个错误表明服务器...
import java.sql.SQLException; ``` 2. 注册JDBC驱动并建立连接: ```java String url = "jdbc:kingbase://hostname:port/databasename"; String username = "your_username"; String password = "your_password"; ...
绝对好用的9i驱动包+10g驱动包 解决java.sql.SQLException: 不支持的特性 解决oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z异常 等等
在处理SQL Server数据库连接问题时,遇到的错误信息“System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 登录失败”表明出现了权限问题。该错误通常发生在尝试访问数据库时,所用的用户身份没有足够...