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

