jdbc的con、pstmt、rs的非正常关闭顺序探讨
来源:互联网 发布:酷派云安全系统优化 编辑:程序博客网 时间:2024/05/20 19:29
首先大家都知道,正常的关闭顺序都是ResultSet、PreparedStatement、Connection的顺序,这里就不作讨论了
Connection:与特定数据库的连接(会话)。
PreparedStatement:表示预编译的 SQL 语句的对象。SQL 语句被预编译并且存储在 PreparedStatement
对象中。然后可以使用此对象高效地多次执行该语句。
ResultSet:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
接下里说的是如果不关闭某一个对象的时候它的关闭状态会如何处理
按照jdbc接口要求, 这里作个总体概述:
关闭connection后,statement及resultset会自动关闭或者关闭statement后resultset会自动关闭
下面具体来说下上面这句话的意思:
在jdk文档中的Connection接口的close方法介绍::
close方法会立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
注:Connection 对象在进行垃圾回收时被自动关闭。某些严重的错误也会关闭 Connection 对象
我想这里的jdbc资源和它们,就是connection statement resultset等资源
在jdk文档中的Statement接口的close方法介绍:
close方法会立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。一般来说,使用完后立即释放资源是一个好习惯,
这样可以避免对数据库资源的占用。
注:Statement 对象在进行垃圾回收时被自动关闭。关闭 Statement 对象时,还将同时关闭其当前的 ResultSet 对象(如果有)。
这里Prapredstatement接口是继承statement接口的
ResultSet接口的close方法中介绍到:
close方法会立即释放此 ResultSet 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。
注:当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列检索下一个结果时,该 Statement 对象会自动关闭 ResultSet 对象。
垃圾回收 ResultSet 对象时它也会自动关闭
如上所述的“这里的等待该对象自动关闭”也就是等java的垃圾回收器进行gc回收
- jdbc的con、pstmt、rs的非正常关闭顺序探讨
- jdbc的con、pstmt、rs的非正常关闭顺序探讨
- vim 的非正常关闭
- jdbc pstmt.executeQuery() 程序中断引起的问题(数据库postgrelsql)
- JDBC的批处理操作三种方式 pstmt.addBatch()
- 正常关闭JDBC的多个Statement
- 非正常关闭服务器导致的
- 虚拟机非正常关闭的解决方案
- JDBC的关闭顺序深层解答
- 怎么正常关闭JDBC的多个Statement
- extjs 引起IE7,IE8非正常关闭的问题
- mongodb非正常关闭后的再次启动
- VMWare虚拟机非正常关闭后无法启动的解决方案
- VMWare虚拟机非正常关闭后无法启动的解决方案
- FlashBuilder4.7非正常关闭导致不能启动的解决
- VMWare虚拟机非正常关闭后无法启动的解决方案
- FlashBuilder4.7非正常关闭导致不能启动的解决
- Linux 交换文件 恢复非正常关闭的文件
- thinkphp日期显示
- UML详解----深刻理解类图
- android mediaStore
- Epoll工作模式详解
- java thread
- jdbc的con、pstmt、rs的非正常关闭顺序探讨
- js 判断星期几
- json
- 执行存储过程获取OUTput参数返回值
- Android 重写对话框AlertDialog
- java threadlocal
- XCode中使用C语言文件操作
- Broadcast 广播发送及接收
- 完美解决 ubuntu 配置环境变量后不能登录