说明
- 以下出现的第一个参数 boolean condition 表示该条件是否加入最后生成的sql中
- 以下代码块的多个方法均为从上往下补全个别boolean类型的为入参,默认为true
- 以下出现的泛型This均使用Wrapper的实例
- 以下方法出现的R为泛型,在普通的warapper中是String,在LambdaWrapper的函数(例:Entity::getId,Entity为实体类,getId为字段id的getMethod)
- 以下方法入参中的R column均表示数据库字段,当R为String时则为数据库字段名(字段名是数据库关键字的自己用转义符包裹!)!而不是实体类数据字段名!!!
- 以下举例均为使用普通wrapper,入参为Map和List的均以json形式表现!
- 使用中如果入参的Map或者List为空,则不会加入最后生成的sql中!!!
AbstractWrapper
说明
- QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件
allEq
allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
- 全部eq(或个别isNull)
- 个别参数说明
params : key为数据库字段名,value为字段值
null2IsNull: 为true则在map的value为null时调用 isNull 方法,为false时则忽略value为null的 - 例: 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 = ‘老王’
allEq(BiPredicate<R, V> filter, Map<R, V> params)
allEq(BiPredicate<R, V> filter, Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, BiPredicate<R, V> filter, Map<R, V> params, boolean null2IsNull)
个别参数说明:
filter : 过滤函数,是否允许字段传入比对条件中
params 与 null2IsNull : 同上
- 例:allEq((k,v) -> k.indexOf(“a”) > 0, {id:1,name:“老王”,age:null})—>name = ‘老王’ and age is null
- 例: allEq((k,v) -> k.indexOf(“a”) > 0, {id:1,name:“老王”,age:null}, false)—>name = ‘老王’
ep
eq(R column, Object val)
eq(boolean condition, R column, Object val)
- 等于
- 例: eq(“name”, “老王”)—>name = ‘老王’
ne
ne(R column, Object val)
ne(boolean condition, R column, Object val)
- 不等于 <>
- 例: ne(“name”, “老王”)—>name <> ‘老王’
gt
gt(R column, Object val)
本文详细介绍了MyBatis Plus的条件构造器,包括AbstractWrapper和QueryWrapper的使用方法,如eq、ne、gt等操作,并提供了丰富的示例说明如何构造SQL查询和更新条件。
最低0.47元/天 解锁文章
890

被折叠的 条评论
为什么被折叠?



