`
xinglongbing
  • 浏览: 147536 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ResultSet对象关闭

阅读更多

今天实验室一个同学利用同一个Statement对象调用executeQuery方法分别执行不同的SQL查询语句,结果第一次调用返回的ResultSet对象在后面不再可用,提示该对象已经关闭无法执行其他的操作。答案在JDBC4.0规范里面得到了解释:

A ResultSet object is explicitly closed when(ResultSet对象显示关闭的两种情况:)
■ The close method on the ResultSet is executed, thereby releasing any external resources
■ The Statement or Connection object that produced the ResultSet is explictly closed


A ResultSet object is implicitly closed when(隐式关闭的两种情况:)
■ The associated Statement object is re-executed(相关Statement对象重新执行了操作则上一次的ResultSet对象会隐式的关闭)
■ The ResultSet is created with a Holdability of CLOSE_CURSORS_AT_COMMIT and an implicit or explicit commit occurs


Note – Some JDBC driver implementations may also implicitly close the ResultSet when the ResultSet type is TYPE_FORWARD_ONLY and the next method of ResultSet returns false.
Once a ResultSet has been closed, any attempt to access any of its methods with the exception of the isClosed or close methods will result in a SQLException being thrown. ResultSetMetaData instances that were created by a ResultSet that has been closed are still accessible.138 JDBC 4.0 Specification • November 2006


Note – The closing of a ResultSet object does not close the Blob, Clob, NClob or SQLXML objects created by the ResultSet. Blob, Clob, NClob and SQLXML objects remain valid for at least the duration of the transation in which they are created, unless their free method is invoked.

分享到:
评论

相关推荐

    java对数据库操作常用对象及方法整合[归类].pdf

    Java 语言中经常使用的数据库操作对象和方法整合,主要包括 DatabaseMetaData、ResultSet、ResultSetMetaData 等对象。 DatabaseMetaData 对象 DatabaseMetaData 对象提供了关于整个数据库的信息,包括表名、表的...

    JDBC连接所有数据库步骤

    JDBC连接所有数据库步骤 1 将数据库的JDBC驱动加载到classpath中,在基于JAVAEE的WEB应用实际开发过程中,通常要把目标...7 依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放所占用的资源。

    连接数据库获取用户名密码等相关信息.doc

    通过 Connection 对象,可以执行 SQL 语句、获取结果集、关闭数据库连接等操作。在这个示例代码中,使用了 `DriverManager.getConnection()` 方法来获取 Connection 对象。 4. Statement 对象:Statement 对象是 ...

    计算机程序设计(Java)-教案--单元十--数据库编程技术.docx.docx

    释放相关资源 booleanisClosed()throwsSQLException 查询此ResultSet对象是否已经被关闭 StatementgctStatcmcnt()throwsSQLException 获取生成此ResultSet对象的Statement对象 (4)数据库的查询和更新操作 Java数据库...

    删掉,复制别人东西,怕侵权,原本只想收藏的

    一:工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。 二:我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源 ...

    JDBC常见易用的接口和类

    因此,如果读取一个 ResultSet 与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成,如果存在某个语句打开的当前 ResultSet 对象,则 Statement 接口中所有执行方法都会隐式关闭它。 ...

    mysql使用基本操作

    在本例中,我们使用 close() 方法来关闭 Statement 对象和 Connection 对象。 七、总结 本文详细介绍了如何使用 JSP 连接 MySQL 数据库,并执行基本的 CRUD 操作。这些操作是对数据库进行基本操作的前提条件,可以...

    JDBC 用户登录\用户注册\JTable 显示数据库中的记录

    在使用 JDBC 时,需要释放资源,包括关闭连接、Statement 对象和 ResultSet 对象。 结论 使用 JDBC 可以连接数据库,实现用户登录、用户注册、JComboBox 中显示数据库中的记录和 JTable 显示数据库中的记录。需要...

    android通过JDBC直接访问Mysql数据库.docx

    在使用完毕 Connection、PreparedStatement 和 ResultSet 对象后,需要关闭它们,以释放资源。例如: ```java public void close(){ try { if(rs!=null){ rs.close(); rs = null; } if(ps!=null){ ps.close()...

    java 连接数据库

    4. 在处理查询结果时需要注意 ResultSet 对象的关闭,以避免资源的浪费。 四、小结 Java 连接数据库是 Java 程序中非常重要的一部分。通过正确地使用相关类和方法,可以实现对数据库的操作。但是,需要注意相关的...

    使用JavaBean连接数据库

    3. 执行查询:使用Statement对象执行查询操作,返回ResultSet对象。 4. 处理结果:使用ResultSet对象处理查询结果,可以遍历结果集,获取数据。 5. 关闭连接:在使用完毕后,需要关闭连接,以释放资源。 在本例中,...

    JAVA与SQLServer数据库连接总结.doc

    1.9 关闭数据库各对象:关闭Connection、Statement和ResultSet对象,以释放系统资源。 二、使用JDBC直接连接SQLServer数据库 使用JDBC直接连接SQLServer数据库需要经过以下几个步骤: 2.1 配置JDK加入微软SQL...

    JAVA基础:将数据库操作封装到Javabean文档信息

    这是因为 Java.sql 包中的类,如 Connection、Statement、ResultSet 等,都是资源密集型的对象,如果不正确地关闭这些对象,将会导致资源未释放的问题。 问题的根源 直接使用 Java.sql 包中的类来操作数据库,会...

    CLOB字段处理

    需要注意的是,在处理 CLOB 字段时,需要关闭相关的资源,例如 Connection、PreparedStatement、ResultSet 等,以避免资源泄露。 CLOB 字段处理需要使用 Oracle 的 JDBC 驱动程序和 oracle.sql.CLOB 类,通过 ...

    华为的java面试题.doc

    ResultSet 对象包含一些方法来从结果集中获取数据,并将其存储到 Java 变量中。 5. 关闭数据库连接:在完成数据库访问后,需要关闭数据库连接,以释放内存和资源。 在面试中,理解 Java 基础知识和 JDBC 连接...

    Dbutils项目实例

    ColumnListHandler :将ResultSet中某一列的数据存成List List中存放的是Object对象 KeyedHandler :将ResultSet中存成映射 key为某一列对应为Map Map中存放的是数据 MapHandler :将ResultSet中第一行的数据存成Map...

    java学习笔记使用JDBC对数据库进行增删改查方案一.pdf

    关闭连接的顺序非常重要,需要先关闭 ResultSet,然后关闭 PreparedStatement,最后关闭 Connection。使用 try-catch 语句来捕获关闭连接时的异常。 知识点四:记录日志 在 JDBC 中,记录日志非常重要,可以使用 ...

    2022年在Servlet中使用JDBC访问数据库.pptx

    5. 关闭资源:关闭 Connection 和 Statement 对象,以释放资源。 在实际开发中,使用 JDBC 访问数据库的优点包括: 1. 灵活性:JDBC 提供了灵活的 API,允许开发者自由地访问和操作数据库。 2. 通用性:JDBC 可以...

    Java-JDBC【源码】JDBC概述、获取连接、SQL注入问题与解决、查询解析

    7.关闭连接 `ResultSet 、Statement 、Connection` 3.SQL注入问题与解决(Statement 、PreparedStatement) 3.1.模拟SQL注入 3.2.PreparedStatement解决 3.3.Statement 与 PreparedStatement 4.完整源码

    mysql-connector-java-5.1.46-bin

    3.创建statement对象 一个statement对象只能打开一个resultset,如果有两个  同样结果的结果集交叉访问,这两个结果集必定为  两个不同的statement对象所创建,如果在打开一个  新的结果集的时候存在一个已经打开的...

Global site tag (gtag.js) - Google Analytics