七叶笔记 » java编程 » mybatis plus实现条件查询

mybatis plus实现条件查询

一、wapper介绍

用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 表示 查询值为null

mp执行的sql:

5. isNotNull 表示 查询值为不为null

mp执行的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、notinSql

inSql、notinSql可以用来子查询,比如 where id in (select * ... ...)

mp执行的sql:

17. last

last可以直接拼接sql到最后,只能调用一次,多次调用以最后一次为准。注意:有sql注入的风险,慎用。

mp执行的sql:

18. 指定要查询的列

只查询出指定的字段,比如"id", "name", "age"。

mp执行的sql:

以上是一些在业务开发中常用的,稍复杂些的条件查询,实际情况可能还有其他组合变化,更多关于mybatis plus条件查询的资料请关注七叶笔记其它相关文章!

相关文章