mybatis中@Param注解總是報(bào)取不到參數(shù)問題及解決
@Param注解總是報(bào)取不到參數(shù)
springboot+mybatis項(xiàng)目中,在mapper 層傳多個(gè)參數(shù),請(qǐng)求時(shí)總是報(bào)參數(shù)取不到,快瘋了,我發(fā)誓xml層沒問題,mapper層參數(shù)名也沒問題
錯(cuò)誤如下

百度了好久,一直讓我檢查.xml文件是否存在問題,各種方法都嘗試遍了,沒用。。。
最后檢查來檢查去發(fā)現(xiàn)自己@param注解包導(dǎo)錯(cuò)了,param注解應(yīng)該用的是ibatis包的,而我導(dǎo)錯(cuò)了,如下:

我用的idea工具開發(fā),直接alt+回車鍵快捷導(dǎo)入包,沒太注意引錯(cuò)了,編譯也沒報(bào)錯(cuò),坑。。。。
應(yīng)該導(dǎo)入:import org.apache.ibatis.annotations.Param,ibatis是mybatis的前身,mybatis是由ibatis發(fā)展而來。
注意:
其實(shí)就是個(gè)很小的問題,還有個(gè)需要注意的就是在mapper 層,如果只有一個(gè)參數(shù)不需要@param注解,如果有多個(gè)參數(shù),必須要@param()注解,指明每個(gè)參數(shù)的參數(shù)名,否則也會(huì)報(bào)找不到參數(shù)問題,因?yàn)?mybatis注解配置使用ognl表達(dá)式,這樣才能正常的通過注解傳值和取值多個(gè)參數(shù)的問題。
@Param注解詳細(xì)使用方法
1.@Param這個(gè)注解是用來解決接口方法有多個(gè)參數(shù)時(shí)
xxMapper.xml文件綁定參數(shù)混淆問題。
需要在DAO方法形參前面添加@Param(“xxx”),來區(qū)分不同的需要綁定到xxMapper.xml的參數(shù)。
注意雙引號(hào)里的值要與xxMapper.xml中#{}中的值相等,如:
DAO方法:
public void list (@Param(“abc1”) String abc1, @Param(“abc2”) String abc2);
xxMapper.xml中:
values(#{abc1},#{abc2}2.可以修飾JavaBean對(duì)象、Map集合等
如:
public void list (@Param(“param”) User user);
xxMapper.xml中:
where username = #{param.userName}
List getUser(@Param(“param”) Map map);xxMapper.xml中values:
(#{param.id},#{param.name},#{param.age},#{param.sex})3.@Param參數(shù)其實(shí)可加可不加
不加的話按照順序依次取出,如參數(shù)User user中userName和password的值添加到#{userName}#{password}。
但是當(dāng)DAO方法里多個(gè)參數(shù)沒有封裝在一個(gè)Javabean中時(shí),則必須加?;蛘逥AO方法參數(shù)里有一個(gè)以上的JavaBean、集合等情況下也必須加,如:
@Param(“user”) User user, @Param(“example”) Map map
4.使用@Param注解好處
方法參數(shù)名可以不與xxMapper.xml一致,但是注意@Param("")里面的值要與要與xxMapper.xml中#{}里的值一致就可以了,如:
@Param(“user123”) User user
#{user123.userName}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)學(xué)生信息管理界面
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生信息管理界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Java實(shí)現(xiàn)解析zip壓縮包并獲取文件內(nèi)容
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)頁面上傳一個(gè)源碼壓縮包,后端將壓縮包解壓,并獲取每個(gè)文件中的內(nèi)容,感興趣的可以動(dòng)手嘗試一下2022-07-07
springboot中的Application.properties常用配置
這篇文章主要介紹了springboot中的Application.properties常用配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Mybatis詳解動(dòng)態(tài)SQL以及單表多表查詢的應(yīng)用
MyBatis的動(dòng)態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語句中實(shí)現(xiàn)某些邏輯,下面這篇文章主要給大家介紹了關(guān)于Mybatis超級(jí)強(qiáng)大的動(dòng)態(tài)SQL語句的相關(guān)資料,需要的朋友可以參考下2022-06-06

