MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Session,SessionFactory,Connetion等

          Posted on 2008-03-11 22:43 leekiang 閱讀(555) 評論(0)  編輯  收藏 所屬分類: hibernate
          1,有時連續(xù)調(diào)多個Dao方法時會報連接關(guān)閉,原因往往是關(guān)閉session不當(dāng)。
          ? 不要用session.close(),這樣會使同一個線程的下一個Dao方法里執(zhí)行
          ? HibernateSessionFactory.getSession()時取到的是已經(jīng)被關(guān)閉的session,當(dāng)然會報錯了。

          2,Connection conn =session.connection();
          ? 這個conn一定要執(zhí)行conn.close()嗎?

          3,
          http://hi.baidu.com/sodarfish/blog/item/b996a3df9224d217622798ec.html
          在通常的情況下使用DriverManager.getConnection()得到的是一個Connection的實例,當(dāng)你調(diào)用它的close()方 法時會關(guān)閉StateMent和ResultSet。但是我們在使用連接池的過程中,通過連接池得到Connection,當(dāng)我們調(diào)用 Connection的close()時,Connection并不是被關(guān)閉了,而是回到了連接池中,它以后還會被其他的代碼取出來使用,如果我們沒有關(guān) 閉stmt和rs的話,只會使系統(tǒng)中的stmt和rs越來越多。所以在使用連接池后,調(diào)用conn.close()前應(yīng)先將rs和stmt關(guān)閉。

          至于為什么調(diào)用close()之后不是直接關(guān)閉此連接,而是返回給連接池,這是因為dbcp使用委派模型來實現(xiàn)Connection接口了。

          http://nymph.blogdriver.com/nymph/180989.html#comment
          http://www.javaeye.com/topic/9317?page=1
          http://www.javaeye.com/topic/48048?page=1
          Hibernate中的session 事務(wù)處理機(jī)制
          ?
          主站蜘蛛池模板: 星子县| 兰州市| 彰化市| 南充市| 吉木萨尔县| 乐都县| 灌南县| 武隆县| 广饶县| 色达县| 台南市| 绥芬河市| 抚松县| 新乡县| 阿合奇县| 邯郸市| 正蓝旗| 铜山县| 横山县| 银川市| 塔城市| 洞头县| 于都县| 眉山市| 灌南县| 古蔺县| 田东县| 宝应县| 阳江市| 伊川县| 高尔夫| 玛纳斯县| 郎溪县| 永靖县| 白城市| 沛县| 云浮市| 南部县| 西昌市| 措美县| 东光县|