熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java開發中使用Oracle數據庫的一點提醒

2013-11-23 18:49:25  來源: Java核心技術 

  很多朋友在Java開發中使用Oracle數據庫的時候經常會碰到有ORA: maximum open cursors exceeded的錯誤
  
  實際上這個錯誤的原因主要還是代碼問題引起的
  
  ora: maximum open cursors exceeded
  
  表示已經達到一個進程打開的最大游標數
  
  這樣的錯誤很容易出現在Java代碼中的主要原因是Java代碼在執行conncreateStatement()和connprepareStatement()的時候實際上都是相當與在數據庫中打開了一個cursor尤其是如果你的createStatement和prepareStatement是在一個循環裡面的話就會非常容易出現這個問題因為游標一直在不停的打開而且沒有關閉
  
  一般來說我們在寫Java代碼的時候createStatement和prepareStatement都應該要放在循環外面而且在使用了這些Statment後要及時關閉最好是在執行了一次executeQueryexecuteUpdate等操作之後如果不需要使用結果集(ResultSet)的數據就馬上將Statment關閉
  
  對於出現ORA錯誤這種情況單純的加大open_cursors並不是好辦法那只是治標不治本實際上代碼中的隱患並沒有解除
  
  而且絕大部分情況下open_cursors只需要設置一個比較小的值就足夠使用了除非有非常特別的要求實際上不管連什麼數據庫都要記得及時關掉不需要再用的連接
  
  Java連結Oracle時常犯的錯誤列舉
  
   只懂 createStatement不懂關閉statement
  
   只懂 createStatement不懂preparedStatement
  
   只懂在sql裡用to_date甚至直接用String不懂用setDate()
  
  Statement每execute一次就在數據打開一個新的游標使用多次後再close會有未關閉的游標留下所以一定要記得在每次執行並取完記錄集後立即close
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25801.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.