Mybatis传递参数类型为列表的取值如何解决

  介绍

今天就跟大家聊聊有关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传递参数类型为列表的取值如何解决