linkt 2011-12-13 09:11
浏览 463
已采纳

要不要关闭Connection对象,为什么

我写了一个类 封装了MySQL数据库的连接方法,一个是用类方法实现,一个是用对象方法实现,如下:
public static Connection getConn() throws Exception{
Connection conn=null;
try{
Class.forName(strDataDriverName);
} catch (ClassNotFoundException e) {
// TODO: handle exception
throw new Exception(e);
}
try {
conn=DriverManager.getConnection(strDataURL,strDataUserName,strDataPWD);
} catch (SQLException e) {
// TODO: handle exception
throw new Exception(e);
}
return conn;
}
//
public Connection getConnection() throws Exception {

    Connection conn=null;
    try{
        Class.forName(strDataDriverName);
    } catch (ClassNotFoundException e) {
        // TODO: handle exception
        throw new Exception(e);
    }
    try {
        conn=DriverManager.getConnection(strDataURL,strDataUserName,strDataPWD);
    } catch (SQLException e) {
        // TODO: handle exception
        throw new Exception(e);
    }

    return conn;
}

这两个方法都没有关闭conn, 因为要返回conn, 我想问下 如果在外部声明一个 conn=类.getConn 后 然后关闭conn 是不是接可以了也就同样的关闭了类.getConn中的conn,主要是 这两个conn对象是不是一个?
如果用下面的对象.getConnection, 疑惑同上!!

  • 写回答

4条回答

  • 三日过后 2011-12-13 11:19
    关注

    比如你在这个类里写的conn 和 close;
    public class DBUtil {
    public static Connection getConnection() {
    Connection conn = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    String username = "scott";
    String password = "tiger";
    conn = DriverManager.getConnection(dbUrl, username, password);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return conn;
    }

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

    }

    在其他类中需要连接数据库时这样
    Connection = null;
    conn = DBUtil.getConnection();
    然后
    conn.close(); 就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R