MybatisPuls条件构造器allEq方法详解

用途

当传入参数很多的时候,可以直接用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);
   
posted @   哩个啷个波  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示