国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

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

2024-08-29 13:33:04
字體:
來源:轉載
供稿:網友

  很多朋友在java開發中,使用Oracle數據庫的時候,經常會碰到有ORA-01000: maximum open cursors exceeded的錯誤。
  
  實際上,這個錯誤的原因,主要還是代碼問題引起的。
  
  ora-01000: maximum open cursors exceeded.
  
  表示已經達到一個進程打開的最大游標數。
  
  這樣的錯誤很輕易出現在Java代碼中的主要原因是:Java代碼在執行conn.createStatement()和conn.PRepareStatement()的時候,實際上都是相當與在數據庫中打開了一個cursor。尤其是,假如你的createStatement和prepareStatement是在一個循環里面的話,就會非常輕易出現這個問題。因為游標一直在不停的打開,而且沒有關閉。
  
  一般來說,我們在寫Java代碼的時候,createStatement和prepareStatement都應該要放在循環外面,而且在使用了這些Statment后要及時關閉。最好是在執行了一次executeQuery、executeUpdate等操作之后,假如不需要使用結果集(ResultSet)的數據,就馬上將Statment關閉。
  
  對于出現ORA-01000錯誤這種情況,單純的加大open_cursors并不是好辦法,那只是治標不治本。實際上,代碼中的隱患并沒有解除。
  
  而且,絕大部分情況下,open_cursors只需要設置一個比較小的值,就足夠使用了,除非有非常非凡的要求。實際上不管連什么數據庫,都要記得及時關掉不需要再用的連接。
  
  Java連結Oracle時常犯的錯誤列舉:
  
  1. 只懂 createStatement,不懂關閉statement;
  
  2. 只懂 createStatement,不懂preparedStatement;
  
  3. 只懂在sql里用to_date,甚至直接用String,不懂用setDate()。
  
  Statement每execute一次,就在數據打開一個新的游標。使用多次后再close會有未關閉的游標留下,所以一定要記得在每次執行并取完記錄集后,立即close。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德州市| 普陀区| 白山市| 马龙县| 资中县| 龙门县| 黔西县| 应城市| 布尔津县| 上犹县| 双峰县| 乌海市| 镶黄旗| 杨浦区| 万山特区| 萨嘎县| 郯城县| 栖霞市| 淳安县| 大同市| 色达县| 上饶市| 吉隆县| 朝阳市| 崇州市| 高平市| 建德市| 醴陵市| 湄潭县| 怀化市| 吉木乃县| 东丽区| 五家渠市| 民勤县| 闵行区| 宣威市| 武功县| 博乐市| 民权县| 湛江市| 鹤庆县|