MyBatis Plus 条件构造器queryWrapper与updateWrapper详解
版权申诉
117 浏览量
更新于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` 的使用,能有效提高开发效率,降低出错概率,使代码更加整洁和易维护。
2020-12-15 上传
2023-08-08 上传
2023-08-09 上传
2023-08-20 上传
2023-05-05 上传
2023-09-03 上传
2023-05-26 上传
weixin_38719635
- 粉丝: 3
- 资源: 971
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构