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>

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

相关文章

  • 详解SpringBoot中关于%2e的Trick

    详解SpringBoot中关于%2e的Trick

    这篇文章主要介绍了SpringBoot中关于%2e的Trick,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java中的LinkedHashSet集合解读

    Java中的LinkedHashSet集合解读

    这篇文章主要介绍了Java中的LinkedHashSet集合解读,LInkedHashSet这个容器不知道大家在平时的工作用的多吗,反正我基本上没有用过,所以,本文主要对于它的特点、使用场景、实现原理,做一个讲解,希望对大家平时的工作有所帮助,需要的朋友可以参考下
    2023-09-09
  • Java 实例解析单例模式

    Java 实例解析单例模式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建
    2021-11-11
  • Java购物系统设计与实现

    Java购物系统设计与实现

    这篇文章主要为大家详细介绍了Java购物系统设计与实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring,hibernate,struts经典面试笔试题(含答案)

    Spring,hibernate,struts经典面试笔试题(含答案)

    这篇文章主要介绍了Spring,hibernate,struts经典面试笔试题极其参考含答案,涉及SSH基本概念,原理与使用技巧,需要的朋友可以参考下
    2016-03-03
  • Java基础之集合框架详解

    Java基础之集合框架详解

    这篇文章主要介绍了Java基础之集合框架详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • SpringBoot项目部署到腾讯云的实现步骤

    SpringBoot项目部署到腾讯云的实现步骤

    本文主要介绍了SpringBoot项目部署到腾讯云的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java Native关键字原理及作用解析

    Java Native关键字原理及作用解析

    这篇文章主要介绍了Java Native关键字原理及作用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java web基础学习之开发环境篇(详解)

    Java web基础学习之开发环境篇(详解)

    下面小编就为大家带来一篇Java web基础学习之开发环境篇(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论