第一次調用此方法沒問題 可第二次就出現下面的問題(與數據庫相關的操作,比如插入,查詢等)
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:
No operations allowed after connection closed
這個問題怎麼解決啊 只有把Dao.close();這個關閉Connection的方法去掉,可是這樣好像也不對啊?
各位有沒有碰到過類似的問題,有好的解決辦法?
答案:
原因很簡單。在對數據庫操作結束後關閉連接是正確的做法,沒什麼大問題。至於出現:No operations allowed after connection closed。這樣的問題原因只有一個,你這裏和數據庫的連接Connection是一個Static的,程序共享這一個Connection。所以第一次對數據庫操作沒問題,當把Connection關閉後,第二次還想操作數據庫時Connection肯定不存在了。
我本人確實是這個問題,我把connection寫成靜態全局了,然後第一次調用之後直接關閉了,導致全局關閉了,只要把connection寫成局部變量就可以了