1、添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.7.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2、wapper介绍
Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
3、条件构造大全
函数名 | 说明 | 示例 |
eq | 等于 = | 例:eq("name", "老王")--->name = '老王' |
ne | 不等于 <> | 例: ne("name", "老王")--->name <> '老王' |
ge | 大于 > | 例: gt("age", 18)--->age > 18 |
ge | 大于等于 >= | 例: ge("age", 18)--->age >= 18 |
lt | 小于 < | 例: lt("age", 18)--->age < 18 |
le | 小于等于 <= | 例: le("age", 18)--->age <= 18 |
between | BETWEEN 值1 AND 值2 | 例: between("age", 18, 30)--->age between 18 and 30 |
notBetween | NOT BETWEEN 值1 AND 值2 | 例: notBetween("age", 18, 30)--->age not between 18 and 30 |
like | LIKE '%值%' | 例: like("name", "王")--->name like '%王%' |
notLike | NOT LIKE '%值%' | 例: notLike("name", "王")--->name not like '%王%' |
likeLeft | LIKE '%值' | 例: likeLeft("name", "王")--->name like '%王' |
likeRight | LIKE '值%' | 例: likeRight("name", "王")--->name like '王%' |
isNull | 字段 IS NULL | 例: isNull("name")--->name is null |
isNotNull | 字段 IS NOT NULL | 例: isNotNull("name")--->name is not null |
in | 字段 IN (value.get(0), value.get(1), ...) 字段 IN (v0, v1, ...) | 例: in("age",{1,2,3})--->age in (1,2,3)例: in("age", 1, 2, 3)--->age in (1,2,3) |
notIn | 字段 NOT IN (value.get(0), value.get(1), ...) 字段 NOT IN (v0, v1, ...) | 例: notIn("age",{1,2,3})--->age not in (1,2,3)例: notIn("age", 1, 2, 3)--->age not in (1,2,3) |
groupBy | 分组:GROUP BY 字段, ... | 例: groupBy("id", "name")--->group by id,name |
orderByAsc | 排序:ORDER BY 字段, ... ASC | 例: orderByAsc("id", "name")--->order by id ASC,name ASC |
orderByDesc | 排序:ORDER BY 字段, ... DESC | 例: orderByDesc("id", "name")--->order by id DESC,name DESC |
setSqlSelect | 设置 SELECT 查询字段 |
where | WHERE 语句,拼接 + WHERE 条件 |
and | AND 语句,拼接 + AND 字段=值 |
and | New AND 语句,拼接 + AND (字段=值) |
or | OR 语句,拼接 + OR 字段=值 |
orNew | OR 语句,拼接 + OR (字段=值) |
eq | 等于= |
allEq | 基于 map 内容等于= |
ne | 不等于<> |
gt | 大于> |
ge | 大于等于>= |
lt | 小于< |
le | 小于等于<= |
like | 模糊查询 LIKE |
notLike | 模糊查询 NOT LIKE |
in | IN 查询 |
notIn | NOT IN 查询 |
isNull | NULL 值查询 |
isNotNull | IS NOT NULL |
groupBy | 分组 GROUP BY |
having | HAVING 关键词 |
orderBy | 排序 ORDER BY |
orderAsc | ASC 排序 ORDER BY |
orderDesc | DESC 排序 ORDER BY |
exists | EXISTS 条件语句 |
notExists | NOT EXISTS 条件语句 |
between | BETWEEN 条件语句 |
notBetween | NOT BETWEEN 条件语句 |
addFilter | 自由拼接 SQL |
last | 拼接在最后,例如:last(“LIMIT 1”) |
4、实际调用方式
4.1 User实体类
package com.shucha.deveiface.biz.model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class User {
private Long id;
private String userName;
private String passWord;
private Integer age;
private Integer sex;
private Date createTime;
}
4.2 UserService
package com.shucha.deveiface.biz.service;
import com.sdy.mvc.service.BaseService;
import com.shucha.deveiface.biz.model.User;
public interface UserService extends BaseService<User> {
}
4.3 UserServiceImpl
package com.shucha.deveiface.biz.service.impl;
import com.sdy.mvc.service.impl.BaseServiceImpl;
import com.shucha.deveiface.biz.model.User;
import com.shucha.deveiface.biz.service.UserService;
public class UserServiceImpl extends BaseServiceImpl<User> implements UserService {
}
4.4 UserController
package com.shucha.deveiface.web.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.shucha.deveiface.biz.model.User;
import com.shucha.deveiface.biz.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("test")
public void test(){
List<User> list = new ArrayList<>();
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName,"张三");
queryWrapper.ne(User::getSex,2);
queryWrapper.gt(User::getAge,18);
queryWrapper.ge(User::getAge,25);
queryWrapper.lt(User::getAge,25);
queryWrapper.le(User::getAge,25);
queryWrapper.between(User::getCreateTime,"2022-04-01","2022-04-02");
queryWrapper.notBetween(User::getAge,18,35);
queryWrapper.like(User::getUserName,"李");
queryWrapper.notLike(User::getUserName,"谭");
queryWrapper.likeLeft(User::getUserName,"啊");
queryWrapper.likeRight(User::getUserName,"福");
queryWrapper.isNull(User::getSex);
queryWrapper.isNotNull(User::getAge);
queryWrapper.in(User::getUserName,"张三","李四");
queryWrapper.notIn(User::getUserName,"张三");
queryWrapper.groupBy(User::getSex);
queryWrapper.orderByAsc(User::getAge);
queryWrapper.orderByDesc(User::getAge);
queryWrapper.last("limit 10");
list = userService.list(queryWrapper);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~