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。
推薦閱讀:
- 詳解Mybatis中的CRUD
- 解讀Mapper與Mapper.xml文件之間匹配的問題
- mybatis的selectKey作用詳解
- MyBatis中#{}占位符與${}拼接符的用法說明
- mybatis映射和實際類型不一致的問題