Mybatis配置映射文件中parameterType的用法講解
Mybatis配置映射文件parameterType用法
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType為輸入?yún)?shù),在配置的時(shí)候,配置相應(yīng)的輸入?yún)?shù)類型即可。parameterType有基本數(shù)據(jù)類型和復(fù)雜的數(shù)據(jù)類型配置。
1.基本數(shù)據(jù)類型
如輸入?yún)?shù)只有一個(gè),其數(shù)據(jù)類型可以是基本的數(shù)據(jù)類型,也可以是自己定的類類型。包括int,String,Integer,Date,如下:
(1)根據(jù)id進(jìn)行相應(yīng)的刪除:<delete id="deleteById" parameterType="Integer">
(2)添加員工:<insert id="addEmp" parameterType="com.pojo.Employee">
2.復(fù)雜數(shù)據(jù)類型:包含java實(shí)體類,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還提供了一個(gè)使用注解來(lái)參入多個(gè)參數(shù)的方式。這種方式需要在接口的參數(shù)上添加@Param注解
/** * 此處要注意的是,由于該方法需要傳入多個(gè)參數(shù),在進(jìn)行Mybatis配置時(shí), * 沒(méi)有辦法同時(shí)配置多個(gè)參數(shù),另外MyBatis還提供了一個(gè)使用注解來(lái)參入 * 多個(gè)參數(shù)的方式。這種方式需要在接口的參數(shù)上添加@Param注解。。 * 注意,以下兩種寫(xiě)法是完全相同的。但使用的時(shí)候要使用第一種類型 */ 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 # $符號(hào)的注意事項(xiàng)
1.如果傳入的參數(shù)類型大于1種,且參數(shù)個(gè)數(shù)大于等于2,不要寫(xiě)parameterType不然會(huì)報(bào)錯(cuò)
2.解析傳入?yún)?shù)有2種 #{} 與${} ,"#": 會(huì)把你傳入的參數(shù)當(dāng)成字符串解析 也就是你無(wú)論傳入什么 都會(huì)被加上''號(hào) "$" : 你傳入什么 就是什么
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-plus與Mybatis依賴沖突問(wèn)題解決方法
,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧這篇文章主要介紹了Mybatis-plus與Mybatis依賴沖突問(wèn)題解決方法2021-04-04Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼
這篇文章主要介紹了Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼,所用到的開(kāi)發(fā)工具為myeclipse10,MySQL數(shù)據(jù)庫(kù),具體實(shí)現(xiàn)代碼大家參考下本文吧2017-03-03java排查進(jìn)程占用系統(tǒng)內(nèi)存高方法
這篇文章主要為大家介紹了java進(jìn)程占用系統(tǒng)內(nèi)存高排查方法,2023-06-06Spring Data JPA帶條件分頁(yè)查詢實(shí)現(xiàn)原理
這篇文章主要介紹了Spring Data JPA帶條件分頁(yè)查詢實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Java如何實(shí)現(xiàn)簡(jiǎn)單后臺(tái)訪問(wèn)并獲取IP
這篇文章主要介紹了Java如何實(shí)現(xiàn)簡(jiǎn)單后臺(tái)訪問(wèn)并獲取IP,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Springboot+Stomp協(xié)議實(shí)現(xiàn)聊天功能
本示例實(shí)現(xiàn)一個(gè)功能,前端通過(guò)websocket發(fā)送消息給后端服務(wù),后端服務(wù)接收到該消息時(shí),原樣將消息返回給前端,前端技術(shù)棧html+stomp.js,后端SpringBoot,需要的朋友可以參考下2024-02-02