MyBatis Plus 条件构造器queryWrapper与updateWrapper详解
版权申诉
168 浏览量
更新于2024-09-01
收藏 275KB PDF 举报
"mybatis plus条件构造器queryWrapper、updateWrapper"
MyBatis Plus是一个扩展了MyBatis功能的框架,提供了更加便捷的数据操作API。在MyBatis Plus中,`queryWrapper` 和 `updateWrapper` 是两个重要的条件构造器,它们简化了SQL查询和更新语句的编写。
一、条件构造器关系
`queryWrapper` 和 `updateWrapper` 都继承自一系列的抽象类和接口,形成了一个层次结构。`Wrapper` 是所有条件构造器的顶层抽象类,它定义了一些基本的方法。`AbstractWrapper` 是一个具体的抽象类,用于生成SQL的`WHERE`条件。`AbstractLambdaWrapper` 是用于处理Lambda表达式的类,而`LambdaQueryWrapper` 和 `LambdaUpdateWrapper` 分别是Lambda语法下的查询和更新包装器。对于非Lambda的使用,`QueryWrapper` 用于查询操作,`UpdateWrapper` 用于更新操作。
二、项目实例与用法
在实际项目中,我们可以根据需求选择使用 `queryWrapper` 或 `updateWrapper`。以下是一些基本的用法:
1. QueryWrapper:主要用于数据查询。你可以通过这个构造器设置各种条件,如等于、不等于、大于、小于等,以及逻辑运算符(AND、OR)。例如:
```java
QueryWrapper<User> query = new QueryWrapper<>();
query.eq("username", "test"); // 等于条件
query.or().like("email", "example%"); // OR条件
List<User> users = userMapper.selectList(query);
```
2. UpdateWrapper:则用于数据更新。它的使用方式与 `queryWrapper` 类似,但主要用于构建更新语句的`SET`部分。比如:
```java
UpdateWrapper<User> update = new UpdateWrapper<>();
update.set("status", 1).eq("id", 1); // 设置status为1,条件为id等于1
userMapper.update(user, update);
```
三、Lambda表达式支持
如果你的项目使用了Java 8的Lambda表达式,可以使用 `LambdaQueryWrapper` 和 `LambdaUpdateWrapper`,它们使得代码更加简洁且易于阅读。例如:
```java
LambdaQueryWrapper<User> lambdaQuery = new LambdaQueryWrapper<>();
lambdaQuery.eq(User::getId, 1).or().like(User::getEmail, "example%");
List<User> users = userMapper.selectList(lambdaQuery);
LambdaUpdateWrapper<User> lambdaUpdate = new LambdaUpdateWrapper<>();
lambdaUpdate.set(User::getStatus, 1).eq(User::getId, 1);
userMapper.update(user, lambdaUpdate);
```
四、方法格式和说明
`queryWrapper` 和 `updateWrapper` 提供了一系列方法,如 `eq`(等于)、`ne`(不等于)、`gt`(大于)、`lt`(小于)等,以及`and`、`or` 用于组合条件。此外,还有 `like`(模糊匹配)、`between`(介于之间)、`isNull`(为空)和 `isNotNull`(不为空)等,满足不同的查询需求。
五、总结
MyBatis Plus的条件构造器极大地简化了数据库操作,无论是基本的条件查询还是复杂的组合查询,都能通过这些构造器轻松实现。通过熟练掌握 `queryWrapper` 和 `updateWrapper` 的使用,能有效提高开发效率,降低出错概率,使代码更加整洁和易维护。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-08-08 上传
2022-06-19 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38719635
- 粉丝: 3
- 资源: 971
最新资源
- CricScore
- MIC24085芯片设计的DC12V-DC5V降压稳压电路模块ALTIUM设计硬件原理图+PCB工程文件.zip
- eStruts-1.1-开源
- 管理系统系列--运动会管理系统.zip
- 消灭JavaScript怪兽第三季ES6/7/8新特性(10-12)
- 电子功用-多功能电子墙壁挂画
- LibCK3.Tokens:LibCK3的CK3令牌信息
- star-wars-app
- 应用于 POS 机、收银机等80mm 高速微型打印机(原理图、上位机、程序源码)-电路方案
- 消灭JavaScript怪兽第三季ES6/7/8新特性(5-9)
- 管理系统系列--在线学习管理系统,SSM框架的简单实践.zip
- vicinity-neighbourhood-manager:基于Web的应用程序,用于管理在VICINITY Neighbourhood Manager中注册的设备和服务
- python参数校验jsonschema
- vai-passar:在困难时刻提供帮助的应用程序
- 电子功用-基于聚偏氟乙烯压电薄膜的光声气体传感装置
- LogisticRegression_SpamOpinion