1. 程式人生 > 其它 >Mybatis---配置檔案完成增刪改查(引數傳遞)

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型別,引數佔位符名稱 叫什麼都可以。儘量做到見名知意