介绍
今天就跟大家聊聊有关Mybatis传递参数类型为列表的取值如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
参数传递为列表时:
当传递一个列表实例或者数组作为参数对象传给Mybatis。此时,Mybatis会自动将它包装在一个图中,用名称在作为键.List实例将会以“列表”作为键,而数组实例将会以“数组”作为键,所以,当我们传递的是一个集列表合时,Mybatis会自动把我们的集列表合包装成以列表为键值的地图。
DAO层:
ListselectUserByIDs (IDs)列表;
XML文件:
& lt;选择id=皊electUserByIDs"parameterType=癹ava.util.List"resultType=皍ser"比; 从用户选择* & lt; where> & lt;如果测试=癷d !=null和IDs.size()在0“比; & lt; foreach收集=癐Ds"打开=?和id (“;近=?,项=皍id"分隔符=?“在 # {uid} & lt;/foreach> & lt;/if> & lt;/where> & lt;/select>
报错信息:
org.apache.ibatis.binding。BindingException:参数id # 39;没有找到。可用的参数(集合、列表)
引用>
方法一:将我们的XML中收集属性值直接设置为列表
DAO层:
ListselectUserByIDs (IDs)列表; XML文件:
& lt;选择id=皊electUserByIDs"parameterType=癹ava.util.List"resultType=皍ser"比; 从用户选择* & lt; where> & lt;如果测试=傲斜?=null和list.size()在0“比; & lt; foreach收集=發ist"打开=?和id (“;近=?,项=皍id"分隔符=?“在 # {uid} & lt;/foreach> & lt;/if> & lt;/where> & lt;/select>方法二:利用注解@Param指定我们的入参名称
DAO层:
ListselectUserByIDs (@Param (“IDs")id列表); XML文件:
& lt;选择id=皊electUserByIDs"parameterType=癹ava.util.List"resultType=皍ser"比; 从用户选择* & lt; where> & lt;如果测试=癷d !=null和IDs.size()在0“比; & lt; foreach收集=癐Ds"打开=?和id (“;近=?,项=皍id"分隔符=?“在 # {uid} & lt;/foreach> & lt;/if> & lt;/where> & lt;/select>看完上述内容,你们对Mybatis传递参数类型为列表的取值如何解决有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
Mybatis传递参数类型为列表的取值如何解决