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

    ibatis原理與源碼分析

    Posted on 2011-03-17 00:44 leekiang 閱讀(3771) 評論(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的各個節(jié)點上要執(zhí)行哪些事件做了定義(就是一些回調方法),放在NodeletParser對象的一個HashMap屬性里,真正調用這些方法是在nodeletParser.parse(reader)里完成的。
    執(zhí)行上述操作后會把配置文件的詳細屬性存儲到該SqlMapConfigParser對象的XmlParserState對象、XmlParserState對象持有的SqlMapConfiguration對象以及(SqlMapConfiguration持有的SqlMapClientImpl和SqlMapExecutorDelegate)。

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

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

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

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

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

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 精品免费人成视频app| 内射干少妇亚洲69XXX| 成在人线AV无码免费| 男人的天堂网免费网站| 免费的黄色的网站| 一本色道久久88亚洲精品综合 | 久久亚洲私人国产精品vA| 亚洲精品A在线观看| 国产伦精品一区二区三区免费下载| 最近中文字幕大全中文字幕免费| a色毛片免费视频| free哆拍拍免费永久视频| 美女视频黄.免费网址 | 免费观看午夜在线欧差毛片 | 亚洲av纯肉无码精品动漫| 亚洲精品伊人久久久久| 亚洲婷婷综合色高清在线| 亚洲伊人tv综合网色| 亚洲αv在线精品糸列| 亚洲精品卡2卡3卡4卡5卡区| 亚洲一级特黄无码片| 国产亚洲成人在线播放va| 亚洲高清无码专区视频| 亚洲av麻豆aⅴ无码电影| 国产一级淫片免费播放| 又黄又爽一线毛片免费观看 | 亚洲暴爽av人人爽日日碰| 亚洲午夜无码毛片av久久京东热| 亚洲中文字幕在线无码一区二区| 亚洲欧洲另类春色校园小说| 亚洲尹人香蕉网在线视颅| 久久亚洲日韩看片无码| 久久亚洲精品无码aⅴ大香| 亚洲手机中文字幕| ww亚洲ww在线观看国产| 亚洲AV性色在线观看| AV激情亚洲男人的天堂国语| 黄床大片30分钟免费看| 国产区在线免费观看| 国偷自产一区二区免费视频 | 亚洲一级毛片在线播放|