MybatisPlus条件构造器

本文详细介绍了MybatisPlus的条件构造器Wrapper,包括allEq、eq、ne、gt、ge、lt、le、between、notBetween等多种查询条件的使用方法及对应的SQL转换结果,还有select、groupBy、having等高级功能的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.前言

前面的文章我们完成了mybatisplus的基础代码生成。接下来我们了解一下条件构造器Wrapper。

二.数据准备

三.查询条件

allEq

 源码解释:map 所有非空属性等于 =

全部eq(或个别isNull)

 转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE name = "阿里" AND age = 18

eq

等于

 转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE name = "武器大师"

ne

不等于

  转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (name <> "武器大师")

相当于

SELECT id,name,age,dept_id FROM sys_employee WHERE name !="武器大师"

gt

大于

  转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE age > 22

ge

大于等于

  转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE age >= 22

lt

小于

转换为sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age < 22)

le

小于等于

SELECT id,name,age,dept_id FROM sys_employee WHERE (age <= 22)

between

值1和值2之间

 含头又含尾

SELECT id,name,age,dept_id FROM sys_employee WHERE (age BETWEEN 18 AND 22)

notBetween

不在值1和值2之间

 sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age NOT BETWEEN 18 AND 22)

like 

模糊查询

  sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (name LIKE "%嘉文%")

notLike

与like相反

sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (name NOT LIKE "%嘉文%")

likeLeft

左模糊

sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (name LIKE "%者")

likeRight

右模糊

 sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (name LIKE "嘉文%")

isNull

查询字段为null的数据

 sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (dept_id IS NULL)

isNotNull

查询字段不为null的数据

sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (dept_id IS NOT NULL)

in

 sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age IN (18,22,222))

notIn

sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age NOT IN (18,22,222))

inSql

sql注入方式的in方法

 sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age IN (select age from sys_employee where age < 22))

notInSql

sql

SELECT id,name,age,dept_id FROM sys_employee WHERE (age NOT IN (select age from sys_employee where age < 22))

select

自定义查询字段

sql

SELECT name,age FROM sys_employee

groupBy

分组

 sql

SELECT dept_id,count(*) as deptTotal FROM sys_employee GROUP BY dept_id

orderBy

排序

单个字段排序

 sql

SELECT id,name,age,dept_id FROM sys_employee ORDER BY age ASC

 多个字段排序

sql

SELECT id,name,age,dept_id FROM sys_employee ORDER BY age,dept_id ASC

多个字段排序是按照第一个字段优先,如果第一个字段值一样在根据第二个字段排序。

having

过滤 一般用于聚合函数后对聚合后的数据进行过滤 where是用在聚合之前

sql

 SELECT dept_id,count(*) as deptTotal FROM sys_employee GROUP BY dept_id HAVING dept_id > 2

写在最后

        愿成长路上有你有我,回首往事,不因虚度年华而悔恨,也不因碌碌无为而羞耻。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值