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

          Session,SessionFactory,Connetion等

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

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

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

          至于為什么調用close()之后不是直接關閉此連接,而是返回給連接池,這是因為dbcp使用委派模型來實現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 事務處理機制
          ?
          主站蜘蛛池模板: 娄烦县| 习水县| 清水河县| 舒城县| 房山区| 三原县| 武川县| 宣汉县| 星座| 葫芦岛市| 米林县| 尼玛县| 龙胜| 大化| 和田县| 垣曲县| 西青区| 乐清市| 阿拉善右旗| 河北区| 天水市| 宁波市| 东光县| 新晃| 祥云县| 汉川市| 慈溪市| 澄江县| 文化| 桑植县| 化隆| 义马市| 平潭县| 三台县| 平山县| 华安县| 五莲县| 平果县| 新竹县| 锦州市| 中阳县|