mybatisPlus条件构造器(wapper)

一、wapper介绍

 

Wrapper : 条件构造抽象类,最顶端父类
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper

 

二、AbstractWrapper
注意: 以下条件构造器的方法入参中的 column 均表示数据库字段
1、ge、gt、le、lt、isNull、isNotNull

 

2、eq、ne
注意: seletOne 返回的是一条实体记录,当出现多条时会报错

 

SELECT id,name,age,email,create_time,update_time,deleted,version FROM user WHERE
deleted=0 AND name = ?
3、between、notBetween
包含大小边界

SELECT COUNT(1) FROM user WHERE deleted=0 AND age BETWEEN ? AND ?

4、allEq

 

SELECT id,name,age,email,create_time,update_time,deleted,version
FROM user WHERE deleted=0 AND name = ? AND id = ? AND age = ?
5、like、notLike、likeLeft、likeRight
selectMaps返回Map集合列表
SELECT id,name,age,email,create_time,update_time,deleted,version
FROM user WHERE deleted=0 AND name NOT LIKE ? AND email LIKE ?
6、in、notIn、inSql、notinSql、exists、notExists
in、notIn:
notIn("age",{1,2,3}) ---> age not in (1,2,3)
notIn("age", 1, 2, 3) ---> age not in (1,2,3)
inSql、notinSql: 可以实现子查询
例: inSql("age", "1,2,3,4,5,6") ---> age in (1,2,3,4,5,6)
例: inSql("id", "select id from table where id < 3") ---> id in (select id from table where id < 3)
SELECT id,name,age,email,create_time,update_time,deleted,version
FROM user WHERE deleted=0 AND id IN (select id from user where id < 3)
7、or、and
注意: 这里使用的是 UpdateWrapper
不调用or则默认为使用 and 连
UPDATE user SET name=?, age=?, update_time=? WHERE deleted=0 AND name LIKE ? OR
age BETWEEN ? AND ?
8、嵌套or、嵌套and
这里使用了 lambda 表达式 or 中的表达式最后翻译成 sql 时会被加上圆括号

 

UPDATE user SET name=?, age=?, update_time=?
WHERE deleted=0 AND name LIKE ?
OR ( name = ? AND age <> ? )
9、orderBy、orderByDesc、orderByAsc
SELECT id,name,age,email,create_time,update_time,deleted,version
FROM user WHERE deleted=0 ORDER BY id DESC
10、last
直接拼接到 sql 的最后
注意: 只能调用一次,多次调用以最后一次为准 有sql注入的风险,请谨慎使用
SELECT id,name,age,email,create_time,update_time,deleted,version
FROM user WHERE deleted=0 limit 1
11、指定要查询的列
SELECT id,name,age FROM user WHERE deleted=0
12、set、setSql
最终的 sql 会合并 user.setAge() ,以及 userUpdateWrapper.set() setSql() 中 的字段

 

UPDATE user SET age=?, update_time=?, name=?, email = '123@qq.com' WHERE deleted=0
AND name LIKE ?

 

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值