你在 client 端 调用 close 释放了连接,那么你工作就已经完成了。
想确定会不会有问题,那么可以这么做。
不停的重新运行你的这段代码,如果 mysql 的线程数 没有增多 就不是问题。
如果随运行次数 线性增加,再来考虑解决这个问题
就是这样的,线程的回收,mysql 有自己的机制。你写程序的时候,最好也这么做,资源的回收不是越快越好,因为初始化资源也是要消耗代价的。
Connection conn = nulltry
{
Class.forName("com.mysql.jdbc.Driver")
conn = DriverManager.getConnection("jdbc:oracle:thin:@host:1521:SID","username","password")
conn.setAutoCommit(false) //取消自动提交
PreparedStatement ps = conn.prepareCall("update something")
ResultSet rs = ps.executeQuery()
conn.commit() //手动提交
}
catch (Exception e)
{
conn.rollback()
e.printStackTrace()
}
finally
{
conn.close()
}
当java应用停止后,mysql不会断开连接,而是维持连接状态,直到超时或者被服务器端断开。为了确保mysql不会断开连接,可以在java应用的配置文件中设置mysql连接的超时时间,让它比服务器端的超时时间要长,可以让mysql保持连接。另外,也可以在java应用中增加定期的心跳检测,不断发送保持连接的请求,以防止mysql断开连接。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)