java , 数据库连接conn关闭的问题

java , 数据库连接conn关闭的问题

谁的新欢旧爱 发布于 2021-11-30 字数 344 浏览 808 回复 13

我在其他的类里直接调用下边的静态方法,xxx.getPstmt(null,sql);

conn用close吗? 不用的话什么时候close的 ? 求指教

public static PreparedStatement getPstmt(Connection conn, String sql) throws SQLException {

    DriverManager.getConnection(url, username, password).prepareStatement(sql);

}

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

想挽留 2021-12-01 13 楼

用数据库连接池吧

月亮是我掰弯的 2021-12-01 12 楼

如果是这样的话,要看数据库像oracle的设置了,会存活一段时间的。

做个少女永远怀春 2021-12-01 11 楼

应该是这样,但这不是这个问题的目的

publicstaticPreparedStatement getPstmt(Connection conn, String sql)throwsSQLException {

    if(conn==null){

猫九 2021-12-01 10 楼

我知道你的意思,但不是这个问题的目的,我的意思是说这样的代码调用完没有显示调conn.close(); 有没有问题。conn到底是关了还是没关

悸初 2021-12-01 9 楼

回复
这个没关。单例的写法,只会有一份

冷清清 2021-12-01 8 楼
public static PreparedStatement getPstmt(Connection conn, String sql) throws SQLException {
    if(conn==null){
    return conn=DriverManager.getConnection(url, username, password).prepareStatement(sql);
}else{
   return conn;
}
   
}

情痴 2021-12-01 7 楼

我知道你的意思,但不是这个问题的目的,我的意思是说这样的代码调用完没有显示调conn.close(); 有没有问题。conn到底是关了还是没关。如果没关的话,那就在代码里不能写这种DriverManager.getConnection(url, username, password).prepareStatement(sql);创建完conn直接就去prepareStatement了

左岸枫 2021-12-01 6 楼

回复
conn没关闭肯定有问题,你每次调用这个方法就多一个没有释放的连接,最后可能导致数据库连不上

柠檬 2021-12-01 5 楼

回复
你得在执行完数据库的增删改查后再去关闭conn

混吃等死 2021-12-01 4 楼

DriverManager.getConnection这个是新连接,然而你调用完了没有关闭它

秋意浓 2021-12-01 3 楼

你准备搞死数据库是吧,每回都是新连接。

甜柠檬 2021-11-30 2 楼

DriverManager.getConnection(url, username, password) 这个不就是connection么

回眸一笑 2021-11-30 1 楼

你这代码写的不全吧,没看到conn参数在哪里被用到啊!