<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問題

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲M码 欧洲S码SSS222| 美景之屋4在线未删减免费 | 亚洲国产精品第一区二区三区| 久久久久国产免费| 免费的黄色网页在线免费观看| 亚洲另类春色国产精品| 亚洲av伊人久久综合密臀性色| 日韩亚洲国产二区| 日本最新免费不卡二区在线| 亚洲美女视频免费| 久久久久久AV无码免费网站 | 亚洲日韩小电影在线观看| 国产成人aaa在线视频免费观看| 4hu四虎最新免费地址| 99精品热线在线观看免费视频| 亚洲精品黄色视频在线观看免费资源 | 久久久久亚洲AV成人网| 四虎影视永久免费视频观看| 成全视频免费高清 | 亚洲国产人成在线观看| 一区二区三区亚洲| 亚洲国产精彩中文乱码AV| 国产亚洲AV手机在线观看| 亚洲一级片内射网站在线观看| 免费一级毛片正在播放| 国产无遮挡又黄又爽免费视频 | 国产精品亚洲精品日韩电影| 亚洲日韩精品无码专区| 亚洲熟妇无码一区二区三区导航| 亚洲AV成人无码天堂| 亚洲一区二区三区在线观看蜜桃 | 成人毛片18女人毛片免费视频未| 好先生在线观看免费播放| 四虎成人精品一区二区免费网站 | 久久久久久亚洲精品无码| 亚洲精品成a人在线观看夫| 天堂亚洲国产中文在线| 亚洲色www永久网站| 亚洲AV一区二区三区四区| 国产天堂亚洲精品| 亚洲精品国产日韩无码AV永久免费网|