通用Mapper
Map<String,Object> params = new HashMap<String,Object>();
params.put("name","王天风");
params.put("age",null);
queryWrapper.allEq((k,v)->!k.equals("name"),params);
List<User> userList = userMapper.selectList(queryWrapper);
allEq中主要传入一个Map对象,属性和值的键值对,如果值中有null,默认拼接is null,可以通过设置忽略null,如果想忽略传入的map中的某个键或值,通过调用Bipredicate方法进行。
AllEq 用法,带filter
AllEq 用法
Alleq(Map<R,V> params)
使用方法:传入一个map集合对象,就会按照等值进行操作。key为字段名称,value为字段值。如果字段的值为null,那么sql就会拼接为is null这种形式。
如果传入的null,想要忽略掉,也就是不进行拼接,那么就传入第二个参数为false。
allEq的第二种方法,参数1为过滤函数,它是一个函数式接口。
上图就是判断name是不等于name,如果不等于就返回true,就会过滤掉,所以没有拼接name。也可以判断值。注意需要考虑类型的问题
CRUD - 查询
过滤掉name
忽略age
allEq用法
忽略如果键为name时的查询参数
allEq第二个参数设定false,值为null的忽略掉
allEq的用法
queryWrapper.allEq((k,v)-> k.equals("name"),params)
Map<String,Object> params = new HashMap<String,Object>();
params.put("name","王天风");
params.put("age",null);
queryWrapper.allEq((k,v)->!k.equals("name"),params);
List<User> userList = userMapper.selectList(queryWrapper);