SQL對應檔

來源:互聯網
上載者:User

標籤:進階   複雜資料類型   檔案的   註解   範圍   ram   res   開啟   情境   

1.SQL對應檔(...Mapper.xml)

  SQL對應檔的幾個頂級元素(按照定義順序)

    mapper-只有一個屬性   namespace(命名空間)

      用於區分不同的mapper,全域唯一

      綁定dao介面,及面向介面編程

    cache-配置給定命名空間的緩衝

    cache-ref-從其他命名空間應用緩衝配置

    resultMap-用來描述資料庫結果集和對象的對應關係

    sql-可用重用的SQL塊,也可以被其他語句引用

    insert-映射插入語句

    update-映射更新語句

    delete-映射刪除語句

    select-映射查詢語句

2.SQL對應檔的select的返回結果類型的映射可以使用resultMap和resultType,但不能同時使用。

  resultType 直接表示傳回型別包括 基礎資料類型 和 複雜資料類型。

  resultMap 則是對外部resultMap定義的引用,對外部resultMap的Id,表示返回結果映射到哪一個resultMap上

  它的應用情境一般是 資料庫欄位資訊與對象屬性不一致 或者需要做複雜的聯集查詢以便自由控制映射結果。

3.關於MyBatis的SQL語句參數入參,對於基礎資料類型的參數資料,使用@param註解實現參數入參;複雜資料類型的參數直接入參即可。

4.resultMap的association 和 collection 可以實現進階結果映射。

association屬性有:

  • javaType:完整Java類名或者別名。若映射到一個JavaBean,則MyBatis通常會自行檢測到其類型;

   若映射到一個HashMap,則應該明確指定JavaType,來確保所需行為。

  • property:映射資料庫列的實體物件的屬性。

association的子項目有:

  • id
  • result

    property:映射資料庫列的實體物件的屬性。

    column:資料庫列名或別名

collection的屬性有:

  • ofType:完整Java類名或者別名,及集合所包含的類型。
  • property:映射資料庫列的實體物件的屬性。  

5.MyBatis緩衝

  • 一級緩衝:是基於PerpetualCache(MyBatis內建)的HashMap本機快取,作用範圍為session域內,但session flush 或者 close 之後,該session中所有的cache就會被清空。
  • 二級緩衝:就是global caching,它超出session 範圍之外,可以被所有SqlSession 共用,開啟它只需要在MyBatis的核心設定檔(mybatis-config.xml)settings中設定即可
  • 一級緩衝緩衝的是SQL語句,二級緩衝緩衝的是結果對象。

SQL對應檔

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.