<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    ibatis原理與源碼分析

    Posted on 2011-03-17 00:44 leekiang 閱讀(3770) 評論(0)  編輯  收藏 所屬分類: ibatis
    ? //SqlMapClientBuilder的buildSqlMapClient(Reader reader)方法
    public static SqlMapClient buildSqlMapClient(Reader reader) {
    ??? return new SqlMapConfigParser().parse(reader);
    ? }

    ? //SqlMapConfigParser的parse(Reader reader)方法
    ? public SqlMapClient parse(Reader reader) {
    ??? try {
    ????? usingStreams = false;
    ????? parser.parse(reader);//此處的parser是NodeletParser
    ????? return state.getConfig().getClient();
    ??? } catch (Exception e) {
    ????? throw new RuntimeException("Error occurred.? Cause: " + e, e);
    ??? }
    ? }
    ?在new SqlMapConfigParser()時就預先對配置文件xml的各個節點上要執行哪些事件做了定義(就是一些回調方法),放在NodeletParser對象的一個HashMap屬性里,真正調用這些方法是在nodeletParser.parse(reader)里完成的。
    執行上述操作后會把配置文件的詳細屬性存儲到該SqlMapConfigParser對象的XmlParserState對象、XmlParserState對象持有的SqlMapConfiguration對象以及(SqlMapConfiguration持有的SqlMapClientImpl和SqlMapExecutorDelegate)。

    SqlMapExecutor接口定義了CRUD等方法,SqlMapTransactionManager接口定義了跟事務相關的方法,SqlMapClient接口和SqlMapSession接口都繼承了SqlMapExecutor和SqlMapTransactionManager。只是SqlMapClient增加了opensession等方法,SqlMapSession接口只增加了一個方法close()。

    SqlMapSessionImpl對象和SqlMapClientImpl對象持有共同的委托對象SqlMapExecutorDelegate delegate.并且利用此委托對象實例化了一個sessionScope對象,然后對增刪改查的調用均委托對象執行處理并傳入這個跟線程綁定的sessionScope對象.

    可在SqlMapConfig.xml里設置settings屬性,具體有哪些屬性,分別表示什么含義還不清楚。這些屬性在ibatis啟動后估計都保存在SqlMapExecutorDelegate對象里。
    <settings
    cacheModelsEnabled="false"
    enhancementEnabled="false"
    lazyLoadingEnabled="false"
    />

    問題:
    1,使用SqlMapClient的最佳實踐,應該用單例,并發如何處理
    2,事務。單個操作不需要手動控制,如果是多個操作,先startTransaction,執行多個操作后commitTransaction,最后還要endTransaction

    參考:
    1,ibatis源碼簡析
    2,實現ibatis的動態加載sqlmap配置文件
    3,深入分析 iBATIS 框架之系統架構與映射原理
    4,Spring集成ibatis問題

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 不卡视频免费在线观看| 亚洲成av人无码亚洲成av人| 中文字幕无码免费久久9一区9 | 一级毛片成人免费看a| 78成人精品电影在线播放日韩精品电影一区亚洲| 国产偷国产偷亚洲高清人 | 猫咪免费人成网站在线观看| 亚洲视频一区调教| 91免费福利精品国产| 亚洲AV中文无码乱人伦| 日韩久久无码免费毛片软件| 亚洲欧洲国产成人综合在线观看| 免费一级全黄少妇性色生活片 | 日本中文一区二区三区亚洲 | 国产亚洲精品国产| 美女内射无套日韩免费播放| 国产免费131美女视频| 羞羞视频免费网站含羞草| 亚洲国产综合久久天堂| 国产免费网站看v片在线| 一区二区三区亚洲| 久久久久免费精品国产| 亚洲国产成人五月综合网| 国产免费AV片在线观看播放| 亚洲精品线在线观看| 毛片a级三毛片免费播放| 亚洲欧洲综合在线| 免费网站观看WWW在线观看| 亚洲韩国在线一卡二卡| 午夜电影免费观看| 成在人线av无码免费高潮水 | 91麻豆精品国产自产在线观看亚洲| 免费人成毛片动漫在线播放| 亚洲国产精品成人综合久久久 | 东方aⅴ免费观看久久av| 亚洲小说图片视频| 亚洲精品综合久久| 国产人成免费视频网站| 免费夜色污私人影院网站| 亚洲精品国产啊女成拍色拍| 亚洲AV成人精品日韩一区18p|