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

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

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

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    來源:http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=10283

    JdbcTemplate為什末包含javax.sql.DataSource ,而不是用connections,因為使用DataSource有很多優點,
    我們在復雜的應用中如果使用connections(當然可以使用 DataSource.getConnection()得到),
    必須捕捉SQLExceptions,這樣spring框架無法處理 SQLException異常,在拋出異常時,無法關閉connection。
    connection為什末不能共享?DataSource.getConnection()得到connection實例,一般都不相同,這由連接池的具體實現控制,
    所以大家不要使用oracle的臨時表,因為如果每次連接都不一樣的話,下次就沒有臨時表了。
    建立連接是消耗時間的,在一段時間內,connection只能由一個用戶使用,為了避免transaction產生沖突,一些jdbc驅動不支持多線程訪問同一個connection。還有一個更致命的問題,眾所周知,transaction是基于connection的,即使多個用戶使用一個連接,大家在一個事務內操作數據庫,一個數據庫操作rollback,所有的數據庫操作全部rollback,所以一直保持一個打開的connection代價是很大的。
    我只有在兩個方法中處理一個事務時,把 connection作為變量傳遞。

    關于statement,resultset和connection的問題

    statement,resultset屬于弱refrence,即如果statement關掉,resultset就會被自動釋構,弱 refrence的做法不保險,所以JDBC3.0開始明確規定了如果connection被關,所有statement都應該關,不過這取決于使用的數據庫驅動。
    應該DBMS 執行操作后,顯式的關閉statement ,因為在connection關閉前,JDBC statement仍舊處于打開狀態,當返回resultset后,關閉statement是必要的,尤其在遇到異常的時候。
    如果不使用 connection pool可以直接關閉connection,不考慮statement的關閉,使用連接池的時候,務必關閉statement,否則你的連接馬上被用光,使用statement pooling除外。
    主站蜘蛛池模板: 激情综合色五月丁香六月亚洲| 国产一级一毛免费黄片| 1024免费福利永久观看网站| 777亚洲精品乱码久久久久久| 人妻在线日韩免费视频| 亚洲国产精品一区二区成人片国内| 一个人看的www在线免费视频| 亚洲日韩精品无码专区网站| 一级做a爱过程免费视| 中文字幕精品亚洲无线码二区| 国产在线精品一区免费香蕉| 亚洲成a人片在线观看无码专区| 无码人妻精品中文字幕免费| 亚洲欧洲日产国产综合网| 69视频在线观看高清免费| 国产色在线|亚洲| 四虎永久免费地址在线观看| 老司机午夜性生免费福利| 色噜噜亚洲精品中文字幕| 免费黄网站在线观看| 亚洲成aⅴ人在线观看| 在线播放免费人成视频在线观看| 色偷偷尼玛图亚洲综合| 久久亚洲中文字幕精品一区四 | 国产亚洲大尺度无码无码专线| 91免费福利视频| 亚洲国产午夜精品理论片| 热99re久久精品精品免费| 成年网在线观看免费观看网址| 亚洲欧洲日产国码av系列天堂| 91香蕉国产线在线观看免费| 亚洲第一成年网站视频| 亚洲中文字幕无码一区| 在线精品一卡乱码免费| 思思久久99热免费精品6| 亚洲视屏在线观看| 国产精品成人免费综合| 无码成A毛片免费| 青娱乐在线视频免费观看| 亚洲色欲或者高潮影院| 亚洲国产天堂久久久久久|