Mybatis---配置檔案完成增刪改查(引數傳遞)
Mybatis 介面方法中可以接收各種各樣的引數,如下:
- 多個引數
- 單個引數:單個引數又可以是如下型別
- POJO 型別
- Map 集合型別
- Collection 集合型別
- List 集合型別
- Array 型別
- 其他型別
多個引數
如下面的程式碼,就是接收兩個引數,而接收多個引數需要使用 @Param
註解,那麼為什麼要加該註解呢?這個問題要弄明白就必須來研究Mybatis 底層對於這些引數是如何處理的。
java User select(@Param("username") String username,@Param("password") String password);
我們在介面方法中定義多個引數,Mybatis 會將這些引數封裝成 Map 集合物件,值就是引數值,而鍵在沒有使用 @Param
- 以 arg 開頭 :第一個引數就叫 arg0,第二個引數就叫 arg1,以此類推。如:
map.put("arg0",引數值1);
map.put("arg1",引數值2);
- 以 param 開頭 : 第一個引數就叫 param1,第二個引數就叫 param2,依次類推。如:
map.put("param1",引數值1);
map.put("param2",引數值2);
在對映配合檔案的SQL語句中使用用
arg
開頭的和param
書寫,程式碼的可讀性會變的特別差,此時可以使用@Param
註解。在介面方法引數上使用
@Param
註解,Mybatis 會將arg
開頭的鍵名替換為對應註解的屬性值。
==結論:以後介面引數是多個時,在每個引數上都使用 @Param
註解。這樣程式碼的可讀性更高。==
單個引數
- POJO 型別
直接使用。要求 屬性名
和 引數佔位符名稱
一致
- Map 集合型別
直接使用。要求 map集合的鍵名
和 引數佔位符名稱
一致
- Collection 集合型別
Mybatis 會將集合封裝到 map 集合中,如下:
map.put("arg0",collection集合);
map.put("collection",collection集合;
==可以使用 @Param
註解替換map集合中預設的 arg 鍵名。==
- List 集合型別
Mybatis 會將集合封裝到 map 集合中,如下:
map.put("arg0",list集合);
map.put("collection",list集合);
map.put("list",list集合);
==可以使用 @Param
註解替換map集合中預設的 arg 鍵名。==
- Array 型別
Mybatis 會將集合封裝到 map 集合中,如下:
map.put("arg0",陣列);
map.put("array",陣列);
==可以使用 @Param
註解替換map集合中預設的 arg 鍵名。==
- 其他型別
比如int型別,引數佔位符名稱
叫什麼都可以。儘量做到見名知意