詳解Mybatis 傳遞參數(shù)類型為L(zhǎng)ist的取值問(wèn)題
問(wèn)題描述:
參數(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的取值問(wèn)題的文章就介紹到這了,更多相關(guān)Mybatis 傳遞參數(shù)類型為L(zhǎng)ist的取值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解在SpringBoot中@Transactional事物操作和事物無(wú)效問(wèn)題排查
這篇文章主要介紹了詳解在SpringBoot中@Transactional事物操作和事物無(wú)效問(wèn)題排查,本文詳細(xì)的介紹了SpringBoot中集成使用@Transactional注解操作事物以及事物開(kāi)啟后無(wú)效的問(wèn)題排查,需要的朋友可以參考下2021-06-06
解決maven打包排除類不生效maven-compiler-plugin問(wèn)題
總結(jié):在Spring Boot項(xiàng)目B中作為項(xiàng)目A的依賴時(shí),排除啟動(dòng)類不生效的原因是被其他類引用或父POM引入,解決方法是跳過(guò)test編譯或注釋掉@SpringBootTest(classes={BApplication.class})2024-11-11
postman測(cè)試post請(qǐng)求參數(shù)為json類型的實(shí)例講解
下面小編就為大家分享一篇postman測(cè)試post請(qǐng)求參數(shù)為json類型的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟
本文主要介紹了Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Java實(shí)現(xiàn)微信公眾號(hào)獲取臨時(shí)二維碼功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)微信公眾號(hào)獲取臨時(shí)二維碼功能,結(jié)合實(shí)例形式分析了java調(diào)用微信公眾號(hào)接口實(shí)現(xiàn)臨時(shí)二維碼生成功能相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
基于Springboot+Netty實(shí)現(xiàn)rpc的方法 附demo
這篇文章主要介紹了基于Springboot+Netty實(shí)現(xiàn)rpc功能,在父項(xiàng)目中引入相關(guān)依賴結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
Java中toString方法的深度解析與應(yīng)用場(chǎng)景詳解
這篇文章主要介紹了Java中的toString方法及其重寫的重要性和注意事項(xiàng),包括信息的完整性、簡(jiǎn)潔性、格式的統(tǒng)一性、避免性能問(wèn)題和遞歸循環(huán)等問(wèn)題,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

