详解Mybatis 传递参数类型为List的取值问题

网友投稿 547 2022-11-17


详解Mybatis 传递参数类型为List的取值问题

问题描述:

参数传递为List时:

当传递一个 List 实例或者数组作为参数对象传给 Mybatis。此时,Mybatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键。所以,当我们传递的是一个List集合时,mybatis会自动把我们的list集合包装成以list为Key值的map。

DAO 层:

List selectUserByIDs( List IDs);

XML文件:

select * from user

#{uid}

报错信息:

org.apache.ibatis.bindihttp://ng.BindingException: Parameter ‘IDs' not found. Available parameters are [collection, list]

解决方法:

方法一:将我们的XML中collection属性值直接设置为list

DAO 层:

List selectUserByIDs( List IDs);

XML文件:

select * from user

#{uid}

方法二: 利用注解@Param指定我们的入参名称

DAO层:

List selectUserByIDs(@Param("IDs") List IDs);

XML文件:

select * from user

#{uid}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot下使用MyBatis
下一篇:Mybatis关联查询之一对多和多对一XML配置详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~