JDBC的资源释放

1.1.1?JDBC资源释放

JDBC程序执行结束后,将与数据库进行交互的对象释放掉,通常是ResultSet,Statement,Connection。

这几个对象中尤其是Connection对象是非常稀有的。这个对象一定要做到尽量晚创建,尽早释放掉。

l 将资源释放的代码写入到finally的代码块中。

l 资源释放的代码应该写的标准:

if(rs !=null){
                                try {
                                        rs.close();
                                } catch (SQLException e) {
                                        e.printStackTrace();
                                }

                                rs = null;
                        }

                        if(statement !=null){
                                try {
                                        statement.close();
                                } catch (SQLException e) {
                                        e.printStackTrace();
                                }

                                statement = null;
                        }

                        if(conn !=null){
                                try {
                                        conn.close();
                                } catch (SQLException e) {
                                        e.printStackTrace();
                                }

                                conn = null;
                        }
?

原文地址:https://blog.51cto.com/14473726/2436975

时间: 2024-11-05 17:27:28

JDBC的资源释放的相关文章

opencv资源释放问题

初学opencv,资源释放问题困扰了好久.感觉小有体会,仅供菜鸟参考. 资源要不要释放主要看是否真正在内存开辟空间.简单点说就是有Creat开辟空间,才有Release的释放空间.当然实际情况要更复杂,比如clone()等深复制.总之还是要看是否真正在内存开辟空间. 具体的参考一下以下3篇文章吧 http://blog.csdn.net/scudz/article/details/8083866 http://blog.csdn.net/liulina603/article/details/84

泛型的资源释放

C#泛型是一种高复用性.安全和高效的技术,通过类型参数可以将参数的声明.实现推迟到客户代码中.但是这种延迟却降低了类型参数在泛型定义中的可操作性.例如资源释放. public interface IWorker { void Operate(); } public class GenericWorker<T> where T : IWorker , new() { public void GetResult() { T worker=new T(); worker.Operate(); } }

深刻理解C#中资源释放

今天我的一个朋友看到我写的那篇<C#中用AJAX验证用户登录>时,给我指出了点小毛 病.就是在用户登录时,如果用户登录失败,在下面这段代码中,都会new出来一个User对象,如果连续登录失败多次,就会生成多个User对象,而它们 在登录失败后已经无用了,依然占据着内存,就算是C#有垃圾回收机制,但不确定什么时候对这些对象进行回收.然后去网上找了一篇C#资源释放的文章,讲的很透彻,和大家分享一下. using System;using System.Collections.Generic;usi

cocos2dx loading界面 预加载资源 与 资源释放

预加载图片: 1.CCTextureCache::sharedTextureCache()->addImage("icon.png"); 2.CCTextureCache::sharedTextureCache()->addImageAsync("icon.png",this,callfuncO_selector(MainLayerLoading::loadingCallBack)); 使用加载的缓存图片: CCSprite* sp =CCSprite:

.net 资源释放(托管资源和非托管资源)

1.托管资源 像int.float.DateTime等都是托管资源:net中80%的资源都是托管资源: 托管资源的回收通过GC(垃圾回收器)自动释放分配给该对象的内存,但无法预测进行垃圾回收的时间,我们无法控制系统在什么时间回收资源. 2.非托管资源 像ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor,FileStream,Font,Icon,Image,Matrix,Object,Odbc

资源释放的问题

转 个人体悟,析构貌似有点鸡肋了,不能显示调用,不也确定调用时机,应该只是做为一种释放资源机制的存在 然后,一个实例类的资源释放应在承载它的方法结束时发生,所以做为主程序结束标志的main函数里才不能写一些冗杂的方法在里面,应把方法写在主程序外面,要用的时候调用一下这样可以省资源.而且有复用性.不知道我这样理解是否有问题.若有不对之处,还请指点,入门新人! C#中Dispose.析构函数.close的区别 本文导读:C#中析构函数 和 Dispose 都是释放资源,析构函数用于 隐式释放资源,D

C#资源释放及Dispose、Close和析构方法

备注:此文的部分观点有误,之所以仍旧保留本文,是需要在后期给出一个勘误版.正确的版本在这里“C#中标准Dispose模式的实现” 一:什么是资源 在开始本文前,需要一些准备知识.首先要提出“什么是资源”.在CLR出来之后,Windows系统资源开始分为“非托管资源”和“托管资源”. 非托管资源是指:所有的Window内核对象(句柄)都是非托管资源,如对于Stream,数据库连接,GDI+的相关对象,还有Com对象等等,这些资源并不是受到CLR管理: 托管资源是指:由CLR管理分配和释放的资源,即

oracle for update锁表资源释放之kill -9和alter system kill session &#39;sid,serial#&#39;;

通过for update锁表,通过操作系统方式和oracle方式终止进程方式 --查询需要终止进程的情况,包括操作系统进程 select proc.sPID, sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess,v$process proc where a

数据库连接资源释放

项目运行过程中遇到了tomcat连接池资源不释放,导致系统崩溃的问题. 查找各种网站,在数据库中进行如下配置 (tomcat): 1.initialSize :连接池启动时创建的初始化连接数量 2.maxActive :连接池中可同时连接的最大的连接数 3.maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限制 4.minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接 5.maxWait  :最大等待时间,当没有可用连接时,连接池等待连接