关于EntityWrapper的in用法

 更新时间:2022年03月22日 11:30:36   作者:luo_yu_1106  
这篇文章主要介绍了关于EntityWrapper的in用法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

EntityWrapper的in用法

EntityWrapper<UserLife> wrapper = new EntityWrapper<>();
wrapper.eq("is_valid", 1);
wrapper.in("life_name", "ge,edu,career");
List<UserLife> userLabelList = userLabelService.selectList(wrapper);

in的第二个参数可以是字符串也可以是list但是注意字符串中","间不能有空格,不然会查出来的语句就是这样的

mybatis-plus EntityWrapper in

环境:

springBoot+mybatis

源码:

        /**
     * <p>
     * IN 条件语句,目前适配mysql及oracle
     * </p>
     *
     * @param column 字段名称
     * @param value  匹配值 集合
     * @return this
     */
    public Wrapper<T> in(String column, Collection<?> value) {
        return in(true, column, value);
    }
    
    /**
     * <p>
     * IN 条件语句,目前适配mysql及oracle
     * </p>
     *
     * @param condition 拼接的前置条件
     * @param column    字段名称
     * @param value     匹配值 集合
     * @return this
     */
    public Wrapper<T> in(boolean condition, String column, Collection<?> value) {
        if (condition && CollectionUtils.isNotEmpty(value)) {
            sql.WHERE(formatSql(inExpression(column, value, false), value.toArray()));
        }
        return this;
    }

如果condition不传,等同于:condition: true;

如果传入的value不为空,相当于改 in 查询语句为拼接;

举个例子

    //代码
    @Override
    public List<User> selectByCaseIdSet(Set<String> idSet) {
        EntityWrapper<User> wrapper = new EntityWrapper<>();
        wrapper.in(!CollectionUtils.isEmpty(idSet), "id", idSet);
        return this.selectList(wrapper);
    }
/**
 * 如果idSet 为空,sql: select * from user 
 * 如果idSet 不为空, sql: select * from user where id in (idSet)
 ** /

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

相关文章

  • Java中System.currentTimeMillis()计算方式与时间单位转换讲解

    Java中System.currentTimeMillis()计算方式与时间单位转换讲解

    本文详细讲解了Java中System.currentTimeMillis()计算方式与时间单位转换,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 快速解决idea @Autowired报红线问题

    快速解决idea @Autowired报红线问题

    这篇文章主要介绍了快速解决idea @Autowired报红线问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java 数据类型及类型转换的互相转换实例代码

    Java 数据类型及类型转换的互相转换实例代码

    这篇文章主要介绍了Java 数据类型及类型转换的互相转换实例代码,需要的朋友可以参考下
    2020-10-10
  • Google Guava 缓存工具使用详解

    Google Guava 缓存工具使用详解

    这篇文章主要介绍了Guava自加载缓存LoadingCache使用指南,通过这些内容介绍,了解了LoadingCache的基本原理和用法,包括如何创建和配置缓存,以及如何结合Java 8的特性来优化代码,需要的朋友可以参考下
    2023-12-12
  • SpringBoot访问HTML过程详解

    SpringBoot访问HTML过程详解

    这篇文章主要详细介绍了SpringBoot访问HTML的全过程,文章中有详细的代码和图片讲解,感兴趣的同学可以参考一下
    2023-04-04
  • Java数据结构之List的使用总结

    Java数据结构之List的使用总结

    List是Java中比较常用的集合类,指一系列存储数据的接口和类,可以解决复杂的数据存储问题,本文就来拿实际案例总结介绍一下List的使用方法,感兴趣的朋友快来看看吧
    2021-11-11
  • springboot单独在指定地方输出sql的方法

    springboot单独在指定地方输出sql的方法

    一般线上项目都是将日志进行关闭,因为mybatis日志打印,时间长了,会占用大量的内存,如果我想在我指定的地方进行打印sql情况,本文就给大家介绍了springboot单独在指定地方输出sql的方法,需要的朋友可以参考下
    2023-10-10
  • Java Selenide 简介与用法

    Java Selenide 简介与用法

    Selenium 是目前用的最广泛的Web UI 自动化测试框架,本文给大家介绍下Java Selenide使用,感兴趣的朋友一起看看吧
    2022-01-01
  • Java中Scanner类与BufferReader类的不同点(非常详细)

    Java中Scanner类与BufferReader类的不同点(非常详细)

    这篇文章主要介绍了Java中Scanner类与BufferReader类的不同点(非常详细)的相关资料,需要的朋友可以参考下
    2016-08-08
  • 深入浅出MappedByteBuffer(推荐)

    深入浅出MappedByteBuffer(推荐)

    MappedByteBuffer使用虚拟内存,因此分配(map)的内存大小不受JVM的-Xmx参数限制,但是也是有大小限制的,这篇文章主要介绍了MappedByteBuffer的基本知识,需要的朋友可以参考下
    2022-12-12

最新评论