如何查询数据库连接不释放,和java程序一直进行链接,这种问题怎么处理
4个回答
展开全部
你现在遇到了连接不释放的问题?
在每一次openconnection后。你拥有 connection、Resultset、Statement的对象
这三个东西需要依次释放 不然连接将持续开启。
依次执行
rs.close();
stmt.close();
conn.close();
才能释放当前连接。
在每一次openconnection后。你拥有 connection、Resultset、Statement的对象
这三个东西需要依次释放 不然连接将持续开启。
依次执行
rs.close();
stmt.close();
conn.close();
才能释放当前连接。
追问
我用的是数据库连接池,spring控制的,但是有时候执行了一个sql或者什么原因,就一直连接不释放,这样会带动其他的操作也连接不释放了。
追答
请检查:
#回收被遗弃的(一般是忘了释放的)数据库连接到连接池中。 dataBase.removeAbandoned =false
# 数据库连接过多长时间不用将被视为被遗弃而收回连接池中。 dataBase.removeAbandonedTimeout = 30
# 将被遗弃的数据库连接的回收记入日志。 dataBase.logAbandoned = false
#连接池的最大数据库连接数,设为0 表示无限制。 dataBase.maxActive = 200
#数据库连接的最大空闲连接数。超过此空闲连接数,,数据库连接将被标记为不可用,然后被释放。设为0 表示无限制。 dataBase.maxIdle=40
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1 表示无限制dataBase.maxWait=10000
#取得、返回对象和空闲时是否进行验证,检查对象是否有效,默认都为false即不验证
dataBase.testOnBorrow=true
dataBase.testWhileIdle=true
dataBase.testOnReturn=true
dataBase.validationQuery=select 1 from dual
展开全部
不调用close()方法就不会释放连接,可以继续使用connction对象的。不过长连接一旦连接出问题断开会出空指针错误。建议写个连接池,每次从池中取连接,用完了把连接返回到池中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是这样的,打开连接 --> 取数据处理-->关闭连接,下次再查重复刚才的操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用完调用close方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询