用mp也可以方便的实现稍复杂点的条件查询,当然了很复杂的就还是要xml编写sql了。
先看下mp的条件构造抽象类的结构:
Wrapper: 条件构造抽象类,最顶端父类
AbstractWrapper: 用于查询条件封装,生成 sql 的 where 条件
QueryWrapper: Entity 对象封装操作类,不是用lambda语法
UpdateWrapper: Update 条件封装,用于Entity对象更新操作
AbstractLambdaWrapper: Lambda 语法使用 Wrapper统一处理解析lambda获取数据库字段
LambdaQueryWrapper: 用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper: Lambda 更新封装Wrapper
不过最常用的还是QueryWrapper、UpdateWrapper等这些。
套路还是那样,先创建QueryWrapper对象,然后再调用各种方法。
这里就会查询表里age>=40,的数据,看下执行过程的sql语句:
二、常用的条件方法在构造条件的时候,除了上面的ge,还有很多其他的方法,这里简单介绍下比较常用的,并且贴出执行的sql。
1. gt 表示 >mp执行的sql:
2. le 表示 <=mp执行的sql:
3. lt 表示 <mp执行的sql:
4. isNull 表示 查询值为nullmp执行的sql:
5. isNotNull 表示 查询值为不为nullmp执行的sql:
6. eq 表示 =mp执行的sql:
7. ne 表示 !=mp执行的sql:
8. between 表示 在范围之间,包含边界值mp执行的sql:
9. notBetween 表示 在范围之外,不含边界值mp执行的sql:
10. notBetween 表示 在范围之外,不含边界值mp执行的sql:
11. allEq 多条件查询如果我where后面要加多个条件,可以使用allEq。先创建一个hashmap,然后把多个条件put进去,再调用allEq即可。
mp执行的sql:
12. .链式编程,多条件查询此外,还可以使用链式编程,直接在后面继续.调用别的方法。
mp执行的sql:
13. or、and默认情况下,在不调拨or()方法的情况下,是使用and()。
mp执行的sql:
14. 嵌套or、嵌套and查询sql经常会有嵌套or或者and的情况,可以这样写:
mp执行的sql:
15. in、notIn等于sql里的 in和not in。
mp执行的sql:
16. inSql、notinSqlinSql、notinSql可以用来子查询,比如 where id in (select * ... ...)
mp执行的sql:
17. lastlast可以直接拼接sql到最后,只能调用一次,多次调用以最后一次为准。注意:有sql注入的风险,慎用。
mp执行的sql:
18. 指定要查询的列只查询出指定的字段,比如"id", "name", "age"。
mp执行的sql:
以上是一些在业务开发中常用的,稍复杂些的条件查询,实际情况可能还有其他组合变化,更多关于mybatis plus条件查询的资料请关注七叶笔记其它相关文章!