詳解Mybatis 傳遞參數(shù)類型為L(zhǎng)ist的取值問題
問題描述:
參數(shù)傳遞為L(zhǎng)ist時(shí):
當(dāng)傳遞一個(gè) List 實(shí)例或者數(shù)組作為參數(shù)對(duì)象傳給 Mybatis。此時(shí),Mybatis 會(huì)自動(dòng)將它包裝在一個(gè) Map 中,用名稱在作為鍵。List 實(shí)例將會(huì)以“l(fā)ist” 作為鍵,而數(shù)組實(shí)例將會(huì)以“array”作為鍵。所以,當(dāng)我們傳遞的是一個(gè)List集合時(shí),mybatis會(huì)自動(dòng)把我們的list集合包裝成以list為Key值的map。
DAO 層:
List<User> selectUserByIDs( List IDs);
XML文件:
<select id="selectUserByIDs" parameterType="java.util.List" resultType="user"> select * from user <where> <if test="IDs != null and IDs.size() >0"> <foreach collection="IDs" open=" and id in (" close=")" item="uid" separator=","> #{uid} </foreach> </if> </where> </select>
報(bào)錯(cuò)信息:
org.apache.ibatis.binding.BindingException: Parameter ‘IDs' not found. Available parameters are [collection, list]
解決方法:
方法一:將我們的XML中collection屬性值直接設(shè)置為list
DAO 層:
List<User> selectUserByIDs( List IDs);
XML文件:
<select id="selectUserByIDs" parameterType="java.util.List" resultType="user"> select * from user <where> <if test="list != null and list.size() >0"> <foreach collection="list" open=" and id in (" close=")" item="uid" separator=","> #{uid} </foreach> </if> </where> </select>
方法二: 利用注解@Param指定我們的入?yún)⒚Q
DAO層:
List<User> selectUserByIDs(@Param("IDs") List IDs);
XML文件:
<select id="selectUserByIDs" parameterType="java.util.List" resultType="user"> select * from user <where> <if test="IDs != null and IDs.size() >0"> <foreach collection="IDs" open=" and id in (" close=")" item="uid" separator=","> #{uid} </foreach> </if> </where> </select>
到此這篇關(guān)于詳解Mybatis 傳遞參數(shù)類型為L(zhǎng)ist的取值問題的文章就介紹到這了,更多相關(guān)Mybatis 傳遞參數(shù)類型為L(zhǎng)ist的取值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)教程之類型轉(zhuǎn)換與多態(tài)
這篇文章主要介紹了Java基礎(chǔ)教程之類型轉(zhuǎn)換與多態(tài),本文講解了 基本類型轉(zhuǎn)換、 upcast與多態(tài)、 Object類等內(nèi)容,需要的朋友可以參考下2014-09-09SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯(cuò)誤的解決
這篇文章主要介紹了SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java兩種方式實(shí)現(xiàn)動(dòng)態(tài)代理
Java 在 java.lang.reflect 包中有自己的代理支持,該類(Proxy.java)用于動(dòng)態(tài)生成代理類,只需傳入目標(biāo)接口、目標(biāo)接口的類加載器以及 InvocationHandler 便可為目標(biāo)接口生成代理類及代理對(duì)象。我們稱這個(gè)Java技術(shù)為:動(dòng)態(tài)代理2020-10-10解決idea配置Tomcat Deployment沒有artifact選項(xiàng)的問題
今天在配置的時(shí)候tomcat deployment中卻找不到artifact,沒有artifact就不能打成war包上傳到服務(wù)器了,那么怎么解決沒有artifact選項(xiàng)的問題呢,今天通過本文給大家分享idea配置Tomcat Deployment沒有artifact選項(xiàng)的解決方案,一起看看吧2023-10-10Java 如何使用Feign發(fā)送HTTP請(qǐng)求
這篇文章主要介紹了Java 如何使用Feign發(fā)送HTTP請(qǐng)求,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下2020-11-11