Java開發中使用Oracle數據庫的一點注意事項(原創)
很多朋友在Java開發中
使用Oracle數據庫的時候
經常會碰到有ORA
: maximum open cursors exceeded
的錯誤
實際上
這個錯誤的原因
主要還是代碼問題引起的
ora
: maximum open cursors exceeded
表示已經達到一個進程打開的最大游標數
這樣的錯誤很容易出現在Java代碼中的主要原因是
Java代碼在執行conn
createStatement()和conn
prepareStatement()的時候
實際上都是相當與在數據庫中打開了一個cursor
尤其是
如果你的createStatement和prepareStatement是在一個循環裡面的話
就會非常容易出現這個問題
因為游標一直在不停的打開
而且沒有關閉
一般來說
我們在寫Java代碼的時候
createStatement和prepareStatement都應該要放在循環外面
而且使用了這些Statment後
及時關閉
最好是在執行了一次executeQuery
executeUpdate等之後
如果不需要使用結果集(ResultSet)的數據
就馬上將Statment關閉
對於出現ORA
錯誤這種情況
單純的加大open_cursors並不是好辦法
那只是治標不治本
實際上
代碼中的隱患並沒有解除
而且
絕大部分情況下
open_cursors只需要設置一個比較小的值
就足夠使用了
除非有非常特別的要求
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26521.html