Mybatis配置映射文件中parameterType的用法講解

Mybatis配置映射文件parameterType用法

在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到瞭parameterType的用法,parameterType為輸入參數,在配置的時候,配置相應的輸入參數類型即可。parameterType有基本數據類型和復雜的數據類型配置。

1.基本數據類型

如輸入參數隻有一個,其數據類型可以是基本的數據類型,也可以是自己定的類類型。包括int,String,Integer,Date,如下:

(1)根據id進行相應的刪除:<delete id=”deleteById” parameterType=”Integer”>

(2)添加員工:<insert id=”addEmp” parameterType=”com.pojo.Employee”>

2.復雜數據類型:包含java實體類,map

配置如:

  <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">  
       select * from Teacher where c_id=#{id} and sex=#{sex} 
  </select> 

java代碼如下:

    Map<String,String> map=new HasMap<String,String>();  
    map.put("id","2");  
    map.put("sex","男");  
    List<Teacher> tList = teacherMapper.selectTeacher(map);   
    for (Teacher entityTemp : tList) {    
    System.out.println(entityTemp.toString()); } 

另外MyBatis還提供瞭一個使用註解來參入多個參數的方式。這種方式需要在接口的參數上添加@Param註解

    /**
     * 此處要註意的是,由於該方法需要傳入多個參數,在進行Mybatis配置時,
     * 沒有辦法同時配置多個參數,另外MyBatis還提供瞭一個使用註解來參入
     * 多個參數的方式。這種方式需要在接口的參數上添加@Param註解。。
     * 註意,以下兩種寫法是完全相同的。但使用的時候要使用第一種類型
     */
    
    User login(@Param(value="name")String name,@Param(value="password")String password );
//    User login(String name,String password);

配置如下:

 <select id="login"  resultType="com.pojo.User">
    select * from us where name=#{name} and password=#{password}
   </select>

Mybatis parameterType # $符號的註意事項

1.如果傳入的參數類型大於1種,且參數個數大於等於2,不要寫parameterType不然會報錯

2.解析傳入參數有2種 #{} 與${} ,”#”: 會把你傳入的參數當成字符串解析 也就是你無論傳入什麼 都會被加上”號 “$” : 你傳入什麼 就是什麼

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: