MybatisPuls条件构造器allEq方法详解
用途
当传入参数很多的时候,可以直接用map接受参数,然后用map构造条件构造器,大大加快了编程的速度。
官网
可以看见官网上说用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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)