永发信息网

java如何关闭数据库连接

答案:7  悬赏:40  手机版
解决时间 2021-03-29 05:47
java如何关闭数据库连接
最佳答案

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


//一个数据库通用的帮助类,用于连接数据库与关闭数据库
public class DBUtil {
    
    //第一步:声明你所需要的一些全局变量
    private final static String DRIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加载驱动的字符串
    
    private final static String CONN_STR="jdbc:sqlserver://localhost:1433;databaseName=testDB";//数据库连接字符串
    
    private final static String DB_USER="sa";//数据用户
    
    private final static String DB_PWD="123456";//数据库登录密码
    
    //第二步:加载数据库驱动(这里是sqlserver)
    static{
        
        try{
            
            Class.forName(DRIVER_CLASS);
            
        }catch(ClassNotFoundException e){
            
            e.printStackTrace();//抛出异常
        }
    }
    
    //第三步:获取数据库连接
    public static Connection getConn(){
        
        try {
            
            return DriverManager.getConnection(CONN_STR,DB_USER,DB_PWD);
            
        } catch (SQLException e) {
            
            e.printStackTrace();
            
        }
        return null;
    }
    
    //最后关闭数据库连接
    public static void closeConn(ResultSet rs,PreparedStatement pstmt,Connection conn){
        
        try {
            if (rs!=null) {//如果返回的结果集对象不能为空,就关闭连接
                rs.close();
            }
        } catch (Exception e) {
            
            e.printStackTrace();
        }
        
        try {
            if (pstmt!=null) {
                pstmt.close();//关闭预编译对象
            }
        } catch (Exception e) {
            
            e.printStackTrace();
        }
        
        try {
            
            if (conn!=null) {
                conn.close();//关闭结果集对象
            }
            
        } catch (Exception e) {
            
            e.printStackTrace();
        }
    }
}
全部回答
con.close()????
如果你控制不好就,每请求一次就关闭一次
try{
}
catch()
{}
finally{
rs.close();
conn.close();
.....
}
//补充二楼的:
try{
}
catch()
{}
finally{
if(rs!=null)rs.close();
if(sta!=null)sta.close();
if(conn!=null)conn.close();
//你可以把关闭操作写成一个类的静态方法,每次调用就可以了
}
一般都是做好一个业务后,关闭。
比如一个查询业务。查询结果显示后,关闭。
在查询过程中可能查询很多基本信息表,此类查询不关闭。
------------------
还有就是,业务的开始,要打开数据库连接。
没异常,不过浪费资源,占着坑不拉,执行完一次数据库交互就要关闭一次
try{
sql...
}catch(...){
//异常信息
}finally{
rs.close();
stmt.close();
conn.close();
//关链接,释放资源
}
楼主说的关了不能执行肯定是把结果集返回,这样编程不行的,因为在上述操作中结果集已经关了,再返回就是空了,我们应该把数据返回,在
try{
list.add{rs.getObject(1)};
///
}
把数据装在list里面,返回list
直接关connection:
if(conn != null) {
try {
conn.close();
} catch(Exception e) {
e.printStackTrace();
}
conn = null;
}
写个工具类来关也可以:
public static void close(Connection conn) {
if(conn != null) {
try {
conn.close();
} catch(Exception e) {
e.printStackTrace();
}
conn = null;
}
}
注意,在有返回sql相关对象的函数里不要关connection,例如resultset、statement、preparedstatement,呵呵返回connection的就更不用说了;如果connection是几个函数公
用的,那就在这几个函数都调用完了再关闭;其他情况最好在函数里把connection关了!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DJ,有谁懂乐古DJ的歌曲名字
江西七套 节目表
宁夏大学的学风好吗?!
多做数学题可以变聪明吗
天刀安装以后更新失败求解答
单买电钻电池,能买到吗?
i74970k搭配什么主板好
电饭锅里面一个标有220v10a165°c的元件短接
小米2手机插上移动卡没有信号,是怎么回事?
如负释然什么意思
新买战神z7sp5d1.自己装了系统win10。硬盘分
从浙江金华寄快递寄到广东广州大概要多长时间
神州战神k680d g4d1 这个可以入手吗
83年茅台酒瓶盖上有个酱字值多少钱?
我的车发动机机油寿命显示还剩27%了,该换了吗
推荐资讯
dflihei-w5-winp-bf 是什么字体或下载此字体
一次正义的战争能在高尚的国度里唤起神圣的爱
传销太可怕了,我被洗了十天脑,可是还是轻醒的
这段话怎么读??
ref和out的区别
民间借贷利息问题
48×25又用了乘法分配律请讲解一下
半个圆圈拖尾巴填单韵母
lol炮台怎么玩
《龙剑仙缘》txt全集下载
从相见到相识到相知写作文用什么题目
金歌地址好找么,我有些事要过去,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?