mybatis数组和集合的长度判断及插入方式

 更新时间:2022年01月21日 11:44:23   作者:IT新手村  
这篇文章主要介绍了mybatis数组和集合的长度判断及插入方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis数组和集合的长度判断及插入

1、在使用foreach的是collection属性

该属性是必须指定的,但是在不同情况下,该属性的值是不一样的

主要有一下4种情况: 

  • 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list .
  • 如果传入的是单参数且参数类型是非list的Collection的时候,collection属性值为collection .
  • 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
  • 如果dao层指定了param的name,或者dao层传的是map,collection里为param的name或map的key
DefaultSqlSession
private Object wrapCollection(final Object object) {
    if (object instanceof Collection) {
      StrictMap<Object> map = new StrictMap<Object>();
      map.put("collection", object);
      if (object instanceof List) {
        map.put("list", object);
      }
      return map;
    } else if (object != null && object.getClass().isArray()) {
      StrictMap<Object> map = new StrictMap<Object>();
      map.put("array", object);
      return map;
    }
    return object;
  }

2、判断长度

集合:<if test="arr != null and arr.size() > 0">

数组:<if test="col != null and col .length > 0">

mybatis数组与集合判断非空和长度

数组判断

参数object为数组Object[]时。先判断是否为null,不为null则判断数组长度object.length是否大于0即可。

    <if test="object!=null and object.length>0">
        <yourSql>
    </if>

集合判断

参数object为集合List<Object>时,先判断是否为null,不为null则判断集合长度object.size()是否大于0即可。

    <if test="object!=null and object.size()>0">
        <yourSql>
    </if>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java结合uniapp实现验证码功能的示例详解

    Java结合uniapp实现验证码功能的示例详解

    UniApp 是一个基于 Vue.js 的跨平台应用开发框架,允许开发者使用统一的代码库来构建多平台应用,这篇文章将给大家介绍Java结合uniapp实现验证码功能,文中通过详细的代码示例讲解的非常详细,需要的朋友可以参考下
    2024-07-07
  • Java8新特性之lambda的作用_动力节点Java学院整理

    Java8新特性之lambda的作用_动力节点Java学院整理

    我们期待了很久lambda为java带来闭包的概念,但是如果我们不在集合中使用它的话,就损失了很大价值。现有接口迁移成为lambda风格的问题已经通过default methods解决了,在这篇文章将深入解析Java集合里面的批量数据操作解开lambda最强作用的神秘面纱。
    2017-06-06
  • Java使用OpenOffice将office文件转换为PDF的示例方法

    Java使用OpenOffice将office文件转换为PDF的示例方法

    OpenOffice是一个开源的办公套件,它包含了文档处理、电子表格、演示文稿以及绘图等多种功能,类似于Microsoft Office,本文将给大家介绍Java使用OpenOffice将office文件转换为PDF的示例方法,需要的朋友可以参考下
    2024-09-09
  • springboot-mongodb的多数据源配置的方法步骤

    springboot-mongodb的多数据源配置的方法步骤

    这篇文章主要介绍了springboot-mongodb的多数据源配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 浅谈一下Java中的堆和栈

    浅谈一下Java中的堆和栈

    这篇文章主要介绍了一下Java中的堆和栈,Java数据类型在执行过程中存储在两种不同形式的内存中:栈和堆,它们通常由运行Java虚拟机(JVM)的底层平台维护,需要的朋友可以参考下
    2023-04-04
  • mybatisplus 实现接口MetaObjectHandler自动填充字段值

    mybatisplus 实现接口MetaObjectHandler自动填充字段值

    MetaObjectHandler是MyBatis-Plus提供的一个接口,本文主要介绍了mybatisplus 实现接口MetaObjectHandler自动填充字段值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • 使用Java实现生命游戏串行代码示例

    使用Java实现生命游戏串行代码示例

    生命游戏是一种二维细胞自动机,由英国数学家在1970年发明,在游戏的过程中,细胞会形成各种有规律的结构,展现出生命的复杂性和多样性,本文通过java和JavaFX实现了一个简单的生命游戏,可以直观的观察到细胞的迭代过程,需要的朋友可以参考下
    2024-10-10
  • Java Netty HTTP服务实现过程解析

    Java Netty HTTP服务实现过程解析

    这篇文章主要介绍了Java Netty HTTP服务实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 详解SpringBoot AOP 拦截器(Aspect注解方式)

    详解SpringBoot AOP 拦截器(Aspect注解方式)

    这篇文章主要介绍了详解SpringBoot AOP 拦截器 Aspect,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Maven的使用和配置国内源的保姆级教程

    Maven的使用和配置国内源的保姆级教程

    Maven是⼀个项目管理工具,基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件,很多新手还不够了解maven,所以本文给大家讲解Maven的使用和配置,需要的朋友可以参考下
    2025-04-04

最新评论