MybatisPlus快速上手:
MybatisPlus快速上手1——MybatisPlus插件的介绍和整合
Mybatis快速上手2——通用的CRUD操作
PlusMybatisPlus快速上手3——相关配置
条件构造器 Wrapper
在MybatisPlus中,Wrapper接口的实现类关系如下(IDEA按CTRL+H):
可以看到,AbstractWrappe
r和AbstractChainWrapper
是重点实现,接下来我们重点学习AbstractWrapper以及其子类。
说明:
QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类 用于生成 sql的 where 条件, entity 属性也用于生成 sql 的 where 条件 注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为
allEq
说明
全部eq(或个别isNull)
个别参数说明: params :
key
为数据库字段名,
value
为字段值
null2IsNull
: 为 true 则在 map 的 value 为 null 时调用 isNull 方法,为 false 时则忽略 value 为 null 的
//allEq方法
allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
例1:
allEq({
id:1,name:"老王",age:null})
---> id = 1 and name = '老王' and age is null
例2:
allEq({
id:1,name:"老王",age:null}, false)
---> id = 1 and name = '老王
个别参数说明:
filter
: 过滤函数,是否允许字段传入比对条件中 params 与
null2IsNull
: 同上
allEq(BiPredicate<R, V> filter, Map<R, V> params)
allEq(BiPredicate<R, V> filter, Map<R, V> params, boolean null2IsNull)
allEq