首页 > 其他分享 >MybatisPuls条件构造器allEq方法详解

MybatisPuls条件构造器allEq方法详解

时间:2023-05-10 21:45:24浏览次数:54  
标签:name allEq filter 详解 params MybatisPuls 参数 null

用途

当传入参数很多的时候,可以直接用map接受参数,然后用map构造条件构造器,大大加快了编程的速度。

官网

image-20230510213349282
可以看见官网上说用allEq就可以传入Map参数进行条件查询,下面对allEq传入的每一个参数进行详细的解释

params

Map params代表传入的参数列表,可以是接受的前台传过来的Map参数列表,也可以是后台自己创建的map

boolean null2IsNull

这个参数是说当参数中有值为null的参数,会不会对该参数进行查询,如果值为true,就会进行查询,查询数据库表中该值为null的一行,如果为false,就不会对该字段进行查询。

allEq({id:1,name:"老王",age:null})--->id = 1 and name = '老王' and age is null

allEq({id:1,name:"老王",age:null}, false)--->id = 1 and name = '老王'
123

filter

allEq(boolean condition, BiPredicate<R, V> filter, Map<R, V> params, boolean null2IsNull) 
1

这里面的filter是一个BiPredicate对象,Java8里面Predicate是一个函数式接口,它接受一个参数返回一个boolean类型,通常在集合对象的筛选器中使用,BiPredicate和Predicate功能类似,只是多了一个参数。

condition

condition为true时该方法执行,如果为false,该方法不执行
代码实现

public List<CourseClassificationEntity> selectCourseClassificationList(Map<String ,Object> params) {

        QueryWrapper <CourseClassificationEntity> wrapper = new QueryWrapper<>();
        //只有当Key值不等于“name”的时候才放行
        BiPredicate<String, Object> filter = (s,o)-> !s.equals("name");
        //根据map参数进行条件查询
        wrapper.allEq(filter, params, false);
        String name = (String) params.get("name");
        //模糊查询
        if(name!=null)wrapper.like("name",name);
        return courseClassificationMapper.selectList(wrapper);
   

标签:name,allEq,filter,详解,params,MybatisPuls,参数,null
From: https://www.cnblogs.com/javaxubo/p/17389426.html

相关文章

  • kmp算法详解
    相关题目链接:LeetCode28.找出字符串中第一个匹配项的下标代码如下funcstrStr(sstring,pstring)int{//kmp算法,下标一般从1开始,//next数组表示的是最长相等前后缀的长度,也就是最少移动几位,使得前后缀相等,//s是主串,p是模式串n:=len(s)m:=len(p)......
  • MarkDown语法基础详解附带视频链接
    MarkDown语法基础大家如果喜欢的话就收藏或者分享给你的小伙伴把!以下总结的为常见语法,我使用的是Typora破解版,里面有快捷键,讲语法是为了让大家更好的理解大家也可以去看详细视频讲解基础篇视频讲解链接画图篇视频讲解链接标题标题使用方法:#+空格+标题(回车得到标题)标题分为......
  • 万字长文详解如何使用Swift提高代码质量
    前言京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%+以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自Swift的Crash的占比不到1%。在这过程......
  • Vue插槽详解
    vue插槽的作用Vue插槽是Vue中常见的一种组件间的相互通信方式,作用是让父组件可以向子组件指定位置插入html结构,适用于父组件===>子组件,在要接收数据的组件页面通过<slot></slot>标签来表示,简单来说,就是通过此标签来起到占位的作用,而要插入的内容也会对应到标签所在的位置。1.默......
  • 正则表达式详解
    一、正则表达式概述正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。通俗的讲就是按照某种规则去匹配符合条件的字符串一个正则表达式是一种从左到右匹配主体字符串的模式。“Regularexpression”这个词比较拗口,我们常使用缩写......
  • C#-JSON详解
      最近在做微信开发时用到了一些json的问题,就是把微信返回回来的一些json数据做一些处理,但是之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列化和反序列化一下,但是太麻烦了我觉得,所以就在找一些更简单又方便使用的方法。也许这个会......
  • JDK1.7和JDK1.8和HashMap详解
    近期对JDK1.7和JDK1.8的HashMap源码进行了学习,今天也在这里进行个人总结一下。首先,众所周知,HashMap是以键值对的方式存储数据的,1.7的底层数据结构是数组+链表,是一个Entry数组。1.8的底层数据结构是数组+链表+红黑树·,是一个Node对象的数组。下面我就根据源码分析下HashMap是怎么......
  • CMake的生成器详解
    CMake会通过CMakelist.txt文件,生成适用于不同项目类型的makefile文件,然后makefile文件被不同的编译器使用进行编译,考虑到C/C++的开发环境之多,有非常多的种类的项目开发环境,但是CMake基本上都考虑到了,这里做一个小的汇总。CMake支持下列generator:VisualStudio6:生成VisualSt......
  • CSS定位方法详解
    css概述:1.css(CascadingStyleSheets)是一种语言,它用来描述HTML和XML的元素显示样式。2.css语言中有css选择器,在selenium中可以使用这种选择器来进行元素定位。3.css定位方法比xpath快,而且css语言也非常强大,所以非常推荐这种定位方法。定位方法:find_element_by_css_selector()......
  • CentOS7中firewall防火墙详解和配置
    提示修改防火墙配置文件之前,需要对之前防火墙做好备份重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙拒绝firewalld的基本使用#停止firewallsystemctlstopfirewalld.service#禁止firewall开机启动systemctldisab......