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

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

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

    posts - 60,comments - 71,trackbacks - 0

        做程序離不開連接數(shù)據(jù)庫(kù),所以一些打開,關(guān)閉數(shù)據(jù)庫(kù)是經(jīng)常要執(zhí)行的操作,打開數(shù)據(jù)庫(kù)后,在程序用完后要及時(shí)關(guān)閉數(shù)據(jù)庫(kù)連接資源,以釋放內(nèi)存,避免資源耗盡.但現(xiàn)在有一個(gè)問(wèn)題,即當(dāng)我們關(guān)閉了Connection對(duì)象后,Statement,ResultSet對(duì)象是否會(huì)自動(dòng)關(guān)閉問(wèn)題,對(duì)于這個(gè)問(wèn)題,之前我在網(wǎng)上也找了相關(guān)資料,說(shuō)會(huì)自動(dòng)關(guān)閉,所以一段時(shí)間以來(lái),我都是只關(guān)閉Connection對(duì)象,而沒(méi)有關(guān)閉Statement,ResultSet對(duì)象,但程序也能正常運(yùn)行,程序也沒(méi)有因?yàn)橘Y源耗盡而崩潰,對(duì)于這一點(diǎn),其實(shí)是有原因的:

        1)首先,關(guān)閉了Connection對(duì)象后,是不會(huì)自動(dòng)關(guān)閉Statement,ResultSet對(duì)象的:
        
    try {
    Connection con 
    = null;
    Statement st 
    = null;
    ResultSet rs 
    = null;
    con 
    = getConnection();
    st 
    = con.createStatement();
    rs 
    = st.executeQuery(sql);
    }

    catch(Exception e) {
     System.out.println(
    "ocurr error");
    }

    finally {
              con.close();con=null;
     
    try {
        
    con.close();
     }

     
    catch(SQLException se) {
        System.out.println(
    "ocurr close error");
     }
     
    }


    System.out.println(
    "statement object:"+st);
    System.out.println(
    "resultset object:"+rs);
    上面的代碼先獲取了連接,然后只關(guān)閉了Connection對(duì)象,而沒(méi)有關(guān)閉Statement,ResultSet對(duì)象,最后兩行代碼輸出Statement,ResultSet對(duì)象,是有結(jié)果的,表明關(guān)閉了Connection對(duì)象,而沒(méi)有關(guān)閉Statement,ResultSet對(duì)象.

    2)Statement對(duì)象將由Java垃圾收集程序自動(dòng)關(guān)閉,而作為一種好的編程風(fēng)格,應(yīng)在不需要Statement對(duì)象時(shí)顯式地關(guān)閉它們,這將立即釋放DBMS資源,有助于避免潛在的內(nèi)存問(wèn)題.

    3)ResultSet維護(hù)指向其當(dāng)前數(shù)據(jù)行的光標(biāo).每調(diào)用一次next方法,光標(biāo)向下移動(dòng)一行.最初它位于第一行之前,因此第一次調(diào)用next將把光標(biāo)置于第一行上,使它成為當(dāng)前行.隨著每次調(diào)用next導(dǎo)致光標(biāo)向下移動(dòng)一行.按照從上至下的次序獲取ResultSet行,在ResultSet對(duì)象或其父輩Statement對(duì)象關(guān)閉之前,光標(biāo)一直保持有效.

         所以在打開數(shù)據(jù)庫(kù)資源后,盡量手工關(guān)閉Connection對(duì)象和Statement,ResultSet對(duì)象,要養(yǎng)成一種良好的編程風(fēng)格.

    注:他們?nèi)咧g關(guān)閉沒(méi)有任何關(guān)聯(lián),即先關(guān)閉誰(shuí)沒(méi)有任何先后順序,可以先關(guān)閉他們中的任何一個(gè),且關(guān)閉其中的任何一個(gè)對(duì)象都不會(huì)關(guān)閉其他其他對(duì)象,但一般養(yǎng)成按關(guān)閉ResultSet,Statement,Connection的順序關(guān)閉資源.

    posted on 2008-06-06 11:02 henry1451 閱讀(6754) 評(píng)論(6)  編輯  收藏 所屬分類: Java技術(shù)

    FeedBack:
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題[未登錄](méi)
    2009-03-16 12:19 | Zhang
    先關(guān)閉connection 然后再關(guān)閉ResultSet 會(huì)發(fā)生什么情況?  回復(fù)  更多評(píng)論
      
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題[未登錄](méi)
    2009-05-21 13:49 |
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題
    2009-05-24 00:43 | Wu
    @Zhang
    先關(guān)Connection,后關(guān)Statement或ResultSet都會(huì)出錯(cuò),LZ,你那個(gè)應(yīng)該只是可以打印出他們的內(nèi)存地址,實(shí)際上他們已經(jīng)被關(guān)閉了  回復(fù)  更多評(píng)論
      
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題
    2009-06-03 16:46 |
    樓上正解~~~
    并且關(guān)于Statement會(huì)自動(dòng)關(guān)閉ResultSet
      回復(fù)  更多評(píng)論
      
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題
    2009-07-07 15:20 | wee
    原來(lái)是個(gè)菜鳥。
    你最后2句只是可以打印出他們的內(nèi)存地址,實(shí)際上他們已經(jīng)被關(guān)閉了。
    不信你先close connetion,再close statement, 看看會(huì)不會(huì)報(bào)錯(cuò)。  回復(fù)  更多評(píng)論
      
    # re: 關(guān)于關(guān)閉Connection是否會(huì)自動(dòng)關(guān)閉Statement,ResultSet問(wèn)題
    2016-05-16 20:22 | 碼農(nóng)C
    謝了, 很受用!  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 看全色黄大色大片免费久久| 亚洲av无码av制服另类专区| 亚洲欧洲日产国码高潮αv| 伊伊人成亚洲综合人网7777| 亚洲黄色在线观看视频| 亚洲欧洲无码AV不卡在线| 视频免费1区二区三区| a在线视频免费观看| 美女视频黄频a免费| 野花香在线视频免费观看大全 | 国产日韩成人亚洲丁香婷婷| 国产亚洲一区区二区在线| 亚洲成AV人综合在线观看| 国产偷国产偷亚洲清高APP| 中文字幕在线视频免费| 国产视频精品免费视频| 麻花传媒剧在线mv免费观看| 国产精品黄页在线播放免费| 99无码人妻一区二区三区免费 | 国产精品久久久久久久久免费| 国产在线不卡免费播放| 亚洲国产精彩中文乱码AV| 亚洲久悠悠色悠在线播放| 中文字幕手机在线免费看电影| 免费看美女裸露无档网站| 99久久综合国产精品免费| 免费无码AV片在线观看软件| 免费在线观看的网站| 国产亚洲美日韩AV中文字幕无码成人| 亚洲欧洲国产视频| 特a级免费高清黄色片| 国产h视频在线观看网站免费| 免费一级特黄特色大片在线观看| 国产小视频在线观看免费| 久久精品亚洲一区二区| 日韩色视频一区二区三区亚洲| 国产激情免费视频在线观看| 91av视频免费在线观看| 亚洲伊人成无码综合网| 亚洲成AV人片在线观看WWW| 在线观看亚洲免费视频|