多次刷新之后No operations allowed after connection closed.的原因和解决方式
最近使用Mysql操作数据库,在Servlet里面调用之后
出现了No operations allowed after connection closed.问题。
出现这个问题一般出现在多次刷新页面的情况下面。
使用debug进行错误排查的时候,他的报错是在
pst = con.prepareStatement(sql);
当我把这个变成非静态之后,问题没有解决,最后才定位到Connection
先看看自己是不是把
Connection con
用static 修饰了?
现在来看这个问题的原因:
在对数据库操作结束后关闭连接是正确的做法,没什么大问题。
至于出现:No operations allowed after connection closed。这样的问题原因只有一个
你这里和数据库的连接Connection是一个Static的,程序共享这一个Connection。所以第一 次对数据库操作没问题,当把Connection关闭后,第二次还想操作数据库时Connection肯定不存在了。
(每次开启tomcat后第一次能成功,刷新之后第二次就报了错)
要解决这个问题,只要将自己给Connection设置的static去掉就好了,或者在finally中关闭connection的时候,把static类型的connection也记得关闭掉并设为null就好了。
之后多次刷新就没有什么问题了。
--------------------------------------------------------end------------------------------------
赞 (0)