<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數據加載中……

    【討論】JDBC中,如果ResultSet 和 Statement 不關閉的話,會有什么影響

    感覺上好象是只要把connection給關閉了,系統就能正常運行了。
    那在查詢或是其實操作中,如果只關閉Connection,不作ResultSet 和 Statement 的關閉的話,對系統性能是否會有影響呢。或者是其實方面的不良影響。

    如果你不使用連接池,那么就沒有什么問題,一旦Connection關閉,數據庫物理連接就被釋放,所有相關Java資源也可以被GC回收了。
    但是如果你使用連接池,那么請注意,Connection關閉并不是物理關閉,只是歸還連接池,所以PreparedStatement和ResultSet都被持有,并且實際占用相關的數據庫的游標資源,在這種情況下,只要長期運行,往往就會報“游標超出數據庫允許的最大值”的錯誤,導致程序無法正常訪問數據庫。

    補充:其實這個要看你用的是什么數據庫,然后決定了你的JDBC,然后呢,決定了實現這個JDBC的方法,然后呢就決定了問題。
    建議關閉。

    不使用連接池的情況下,如果你直接關閉連接話,對應的Statement,ResultSet對象都應該由Driver Vendor來幫你關閉,即由他來進行資源的釋放.這個是由JDBC3.0規范中提到的.因為有些數據庫資源可能屬于GC不能釋放的范圍.
    對于連接池的實現而言,有時間我看看Oracle和Postgres的實現再下定論吧.但是我認為出現上面的情況應該理解成為連接池vendor的一種沒有按規范來實現的問題.如果用數據庫自己實現的連接池應該不會有這樣的情況出現.

    使用連接池時也應該會關閉PreparedStatement和ResultSet,看過Apache的DBCP,它是會關的,不知道其他連接池是怎么樣的。實際上,使用不使用連接池應該對開發者透明,都應該遵循Jdbc規范,從這個角度,連接池如果沒有實現關閉功能應該是有問題的。

    posted on 2005-03-05 23:10 閱讀(1790) 評論(0)  編輯  收藏 所屬分類: 數據庫相關

    主站蜘蛛池模板: 免费人成视频在线观看免费| 久久久久久亚洲精品影院| 男人扒开添女人下部免费视频| 大陆一级毛片免费视频观看| 最新国产成人亚洲精品影院| 好男人视频在线观看免费看片| 久久精品国产亚洲AV蜜臀色欲| 中字幕视频在线永久在线观看免费 | 成人影片一区免费观看| 亚洲国产精品无码久久一线| 久久最新免费视频| 国产亚洲综合久久系列| 国产精品99精品久久免费| 亚洲国产综合91精品麻豆| 日本zzzzwww大片免费| 国产精品亚洲综合久久| 国产精品极品美女免费观看| 亚洲第一第二第三第四第五第六| 免费在线观看亚洲| 97在线免费观看视频| 久久精品国产亚洲av麻豆色欲| 国产卡二卡三卡四卡免费网址| 亚洲av日韩aⅴ无码色老头| 亚洲高清无码专区视频| 在线涩涩免费观看国产精品 | 亚洲中文字幕无码一去台湾| 最近最好的中文字幕2019免费| 久久久久亚洲精品无码网址色欲 | 亚洲色少妇熟女11p| 免费大香伊蕉在人线国产| 人妻18毛片a级毛片免费看| 久久久久亚洲av无码尤物| 国产免费看JIZZ视频| 特级毛片aaaa级毛片免费| 亚洲AV永久无码精品| 曰皮全部过程视频免费国产30分钟| 四虎一区二区成人免费影院网址| 久久久亚洲欧洲日产国码aⅴ| 免费观看大片毛片| 97在线免费视频| 亚洲av无码专区首页|