2023-03-13 14:11

MyBatis-Plus 条件构造器QueryWrapper详解

wanmatea

JavaEE

(1037)

(0)

收藏

一、QueryWrapper是什么?

QueryWrapper是Mybatis-plus中的条件构造器,可以简化sql的操作。


二、QueryWrapper的常用方法

1、ge、gt、le、lt

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (age >= ? AND age <= ?)


2、eq、ne

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name = ?)

 

3、between、notBetween

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (age BETWEEN ? AND ?)

4、allEq

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name = ? AND age = ?)

 

5、like、notLike、likeLeft、likeRight

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name LIKE ?)

 

6、in、notIn

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name IN (?,?,?))

 

7、inSql、notinSql、exists、notExists

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (id IN (select id from user where id<5))

 

8、or、and

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name = ? OR age BETWEEN ? AND ?)

注:不调用or则默认为使用 and 连

 

9、嵌套or、嵌套and

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name = ? OR (name = ? AND age >= ?))

注:这里使用了 lambda 表达式 , or 中的表达式最后翻译成 sql 时会被加上圆括号

 

10、orderBy、orderByDesc、orderByAsc

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user ORDER BY id ASC

 

11、last

直接拼接到sql语句的最后

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user limit 0,5

注: 只能调用一次,多次调用以最后一次为准 有sql注入的风险,请谨慎使用

 

12、isNull、isNotNull

示例:

image.png

生成的sql语句:

SELECT id,name,tel,age FROM user WHERE (name IS NULL)

 

13、指定要查询的列

示例:

image.png

生成的sql语句:

SELECT id,name FROM user

0条评论

点击登录参与评论