posts - 23,  comments - 1,  trackbacks - 0

          下面的片斷轉(zhuǎn)載于www.itpub.net

          [TIP]關(guān)于Java開發(fā)中使用Oracle數(shù)據(jù)庫(kù)的一點(diǎn)注意事項(xiàng)(原創(chuàng))

          很多朋友在Java開發(fā)中,使用Oracle數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)碰到有ORA-01000: maximum open cursors exceeded.的錯(cuò)誤。

          實(shí)際上,這個(gè)錯(cuò)誤的原因,主要還是代碼問題引起的。
          ora-01000: maximum open cursors exceeded.
          表示已經(jīng)達(dá)到一個(gè)進(jìn)程打開的最大游標(biāo)數(shù)。

          這樣的錯(cuò)誤很容易出現(xiàn)在Java代碼中的主要原因是:Java代碼在執(zhí)行conn.createStatement()和conn.prepareStatement()的時(shí)候,實(shí)際上都是相當(dāng)與在數(shù)據(jù)庫(kù)中打開了一個(gè)cursor。尤其是,如果你的createStatement和prepareStatement是在一個(gè)循環(huán)里面的話,就會(huì)非常容易出現(xiàn)這個(gè)問題。因?yàn)橛螛?biāo)一直在不停的打開,而且沒有關(guān)閉。

          一般來(lái)說(shuō),我們?cè)趯慗ava代碼的時(shí)候,createStatement和prepareStatement都應(yīng)該要放在循環(huán)外面,而且使用了這些Statment后,及時(shí)關(guān)閉。最好是在執(zhí)行了一次executeQuery、executeUpdate等之后,如果不需要使用結(jié)果集(ResultSet)的數(shù)據(jù),就馬上將Statment關(guān)閉。

          對(duì)于出現(xiàn)ORA-01000錯(cuò)誤這種情況,單純的加大open_cursors并不是好辦法,那只是治標(biāo)不治本。實(shí)際上,代碼中的隱患并沒有解除。
          而且,絕大部分情況下,open_cursors只需要設(shè)置一個(gè)比較小的值,就足夠使用了,除非有非常特別的要求。

          posted on 2006-08-22 11:01 咖啡時(shí)間 閱讀(234) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          專 注 Java 技 術(shù) 的 開 發(fā)... ... 享 受 Java 咖 啡 的 美 味... ... 擁 有 Sun 一 般 的 人 生

          常用鏈接

          留言簿(1)

          隨筆檔案(23)

          文章檔案(1)

          Java學(xué)習(xí)資源

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 赣州市| 砚山县| 德阳市| 绥化市| 永顺县| 沾益县| 凭祥市| 偃师市| 广西| 惠东县| 丰宁| 禹城市| 博湖县| 广丰县| 若尔盖县| 寿阳县| 丹棱县| 黄骅市| 泊头市| 湟中县| 西乌珠穆沁旗| 安化县| 盐边县| 栖霞市| 如皋市| 仙居县| 集贤县| 扎赉特旗| 阳春市| 浦城县| 安国市| 射阳县| 凤庆县| 平顺县| 平山县| 寿宁县| 荔波县| 宣武区| 山东省| 若尔盖县| 承德县|