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

 更新时间:2020年10月19日 10:43:50   作者:Fate-p  
这篇文章主要介绍了详解Mybatis 传递参数类型为List的取值问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题描述:

参数传递为List时:

当传递一个 List 实例或者数组作为参数对象传给 Mybatis。此时,Mybatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键。所以,当我们传递的是一个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属性值直接设置为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指定我们的入参名称

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>

到此这篇关于详解Mybatis 传递参数类型为List的取值问题的文章就介绍到这了,更多相关Mybatis 传递参数类型为List的取值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解在SpringBoot中@Transactional事物操作和事物无效问题排查

    详解在SpringBoot中@Transactional事物操作和事物无效问题排查

    这篇文章主要介绍了详解在SpringBoot中@Transactional事物操作和事物无效问题排查,本文详细的介绍了SpringBoot中集成使用@Transactional注解操作事物以及事物开启后无效的问题排查,需要的朋友可以参考下
    2021-06-06
  • 解决maven打包排除类不生效maven-compiler-plugin问题

    解决maven打包排除类不生效maven-compiler-plugin问题

    总结:在Spring Boot项目B中作为项目A的依赖时,排除启动类不生效的原因是被其他类引用或父POM引入,解决方法是跳过test编译或注释掉@SpringBootTest(classes={BApplication.class})
    2024-11-11
  • 深入解读Java三大集合之map list set的用法

    深入解读Java三大集合之map list set的用法

    集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合适用于不同的场合,这篇文章带你了解Java的三大集合map、list、set用法
    2021-11-11
  • postman测试post请求参数为json类型的实例讲解

    postman测试post请求参数为json类型的实例讲解

    下面小编就为大家分享一篇postman测试post请求参数为json类型的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Java jar打包成exe应用程序的详细步骤

    Java jar打包成exe应用程序的详细步骤

    本文主要介绍了Java jar打包成exe应用程序的详细步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java实现微信公众号获取临时二维码功能示例

    Java实现微信公众号获取临时二维码功能示例

    这篇文章主要介绍了Java实现微信公众号获取临时二维码功能,结合实例形式分析了java调用微信公众号接口实现临时二维码生成功能相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • 基于Springboot+Netty实现rpc的方法 附demo

    基于Springboot+Netty实现rpc的方法 附demo

    这篇文章主要介绍了基于Springboot+Netty实现rpc功能,在父项目中引入相关依赖结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Java中toString方法的深度解析与应用场景详解

    Java中toString方法的深度解析与应用场景详解

    这篇文章主要介绍了Java中的toString方法及其重写的重要性和注意事项,包括信息的完整性、简洁性、格式的统一性、避免性能问题和递归循环等问题,文中将解决的办法介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • spring之SpEL表达式详解

    spring之SpEL表达式详解

    这篇文章主要介绍了spring之SpEL表达式详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java过滤器@WebFilter用法详解

    Java过滤器@WebFilter用法详解

    @WebFilter用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器,这篇文章主要给大家介绍了关于Java过滤器@WebFilter用法的相关资料,需要的朋友可以参考下
    2024-01-01

最新评论