一.前言
前面的文章我们完成了mybatisplus的基础代码生成。接下来我们了解一下条件构造器Wrapper。
二.数据准备
三.查询条件
allEq
源码解释:map 所有非空属性等于 =
转换为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
写在最后
愿成长路上有你有我,回首往事,不因虚度年华而悔恨,也不因碌碌无为而羞耻。