mapper元素:根節點只有一個屬性namespace(命名空間)作用:
2:綁定DAO接口,即面向接口編程。當namespace綁定某一接口之后,可以不用寫該接口的實現類,MyBatis會通過接口的完全限定名來查找對應的mapper配置,執行SQL語句,因此namespa
-----------------------------------------------------
1:namespace的命名必須和某個DAO接口同名,同屬於DAO層,
故代碼結構上,mapper映射文件個接口必須放在同一個包下。
2:在不同的mapper文件中,元素的id是可以相同的,MyBatis
是通過namespace和子元素的id聯合區分的。接口中的方法和映射文件的SQL中的id一一對應。
-----------------------------------------------------
==================================
其實返回的都是Map集合,當resultType返回user時候,MyBatis通過setter()方法自動進行關系映射賦值。返回resultMap時,則需要手動賦值,更自由。二者不能同時存在
==================================
屬性: aotuMappingBehavior
有內部嵌套(collection,association)的除外
==================================
id:對應數據庫中該行的主鍵id,設置此項可提高MyBatis的性能
association:映射到javaBean的某個復雜類型屬性如javaBean
id:同resultMap的id一樣對應該javaBean表的主鍵
collection:映射到javaBean的某個復雜類型屬性,例如集合
ofType : 完整的java類名或者別名(集合所包含的類型)
resultMap : 應用外部的resultMap,代碼重用
id:同resultMap的id一樣對應該javaBean表的主鍵
column:數據庫列名或者別名
2:parameterType:傳入的SQL語句的參數類型的限定名或別名
基礎數據類型:int String Date等, 只能傳入一個,通過#{參數名}來獲取傳入值
復雜數據類型:java實體類,Map集合通過#{屬性名}或#{Map的Key}獲取傳入值
3:resultType:SQL語句的返回值的完整類名或別名
2,3都支持內建的別名,大小寫不區分。可以參考P37別名表#{userName}:userName和接口方法中傳入的參數名是一樣的
2:parameterType:傳入的SQL語句的參數類型的限定名或別名
1:默認返回影響的行數,所以接口方法中的返回值類型要設置為int類型最好不要返回boolean。
2:insert,update,delete元素是沒有返回屬性resultType只有查詢操作select才有相應的指定。
2:parameterType:傳入的SQL語句的參數類型的限定名或別名
同insert用法相同,沒有set賦值的屬性,在表中為NULL顯示,因此用參數入參可以解決此問題
附:超過4個參數最好封裝為對象入參,多參入參,不寫入參類型 參數固定的,最好直接多參數入參.int類型的入參都要使用包裝類.
復雜數據類型:1:JAVA對象 2:Map集合 3:List集合
2:parameterType:傳入的SQL語句的參數類型的限定名或別名
2:在Mapper XML文件中設置緩存,默認情況下:未開啟
3:在Mapper XML文件配置支持cache后,需要對個別查詢做調
<select id="selectALL" resultType="Emp" useCache="true">
----------------------------------
實際上,MyBatis的緩存很少用到,當面對一定規模的數據量時,內置的cache方式也派不上用場,我們一般會選擇OS cache,mamer cache等專