关于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)
 ** /

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

相关文章

  • 使用javaweb项目对数据库增、删、改、查操作的实现方法

    使用javaweb项目对数据库增、删、改、查操作的实现方法

    这篇文章主要给大家介绍了关于使用javaweb项目对数据库增、删、改、查操作的实现方法,avaWeb是指使用Java语言进行Web应用程序开发的技术,可以利用Java编写一些动态网页、交互式网页、企业级应用程序等,需要的朋友可以参考下
    2023-07-07
  • java &与&&的区别及实例

    java &与&&的区别及实例

    这篇文章主要介绍了java &与&&的区别的相关资料,并附简单实例,帮助大家学习理解这部分知识,需要的朋友可以参考下
    2016-10-10
  • Java8接口中引入default关键字的本质原因详析

    Java8接口中引入default关键字的本质原因详析

    Default方法是在java8中引入的关键字,也可称为Virtual extension methods—虚拟扩展方法,这篇文章主要给大家介绍了关于Java8接口中引入default关键字的本质原因,需要的朋友可以参考下
    2022-01-01
  • struts2的国际化实现网站整体中英文切换实例代码

    struts2的国际化实现网站整体中英文切换实例代码

    本篇文章主要介绍了struts2的国际化实现网站整体中英文切换实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Java While循环 do-while循环用法

    Java While循环 do-while循环用法

    循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环,需要的朋友可以参考下
    2020-11-11
  • Java中的Map集合根据key值排序的实现

    Java中的Map集合根据key值排序的实现

    本文主要介绍了Java中的Map集合如何根据key值排序,包含使用TreeMap和使用lambda表达式和Stream流两种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Java Hibernate使用方法及整合查询

    Java Hibernate使用方法及整合查询

    这篇文章主要介绍了Java使用与整合Hibernate,在正式进入Hibernate的高级应用之前,需要了解声明是数据模型与领域模型,这两个概念将会帮助我们更好的理解实体对象的关联关系映射
    2023-04-04
  • 解决使用IDEA时跳转到.class的问题

    解决使用IDEA时跳转到.class的问题

    这篇文章主要介绍了解决使用IDEA时跳转到.class的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java中关于子类覆盖父类的抛出异常问题

    Java中关于子类覆盖父类的抛出异常问题

    今天小编就为大家分享一篇关于Java中关于子类覆盖父类的抛出异常问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • MYSQL批量插入数据的实现代码

    MYSQL批量插入数据的实现代码

    非常的实现原理,代码较多,建议大家仔细看看。
    2008-10-10

最新评论