要不要关闭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, 疑惑同上!!

dao

4个回答

比如你在这个类里写的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(); 就行了

应该不是同一个!

在你这个工具类里面写上关闭方法
public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

然后在哪调用连接就在哪关闭

怎么会关闭俩个conn呢,什么意思

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问