Mybatis-Plus使用技巧详解:从条件查询到分页操作
版权申诉
75 浏览量
更新于2024-09-11
收藏 76KB PDF 举报
"你应该知道的这些Mybatis-Plus使用技巧(小结)"
Mybatis-Plus是一个在Mybatis基础上扩展的框架,它提供了很多便捷的操作数据库的方法,简化了开发过程中的SQL编写工作。以下是一些你应该知道的Mybatis-Plus使用技巧。
1. 条件查询(QueryWrapper)
Mybatis-Plus提供了QueryWrapper类,用于构建动态SQL。例如,如果我们要查询年龄为20的用户信息,可以这样写:
```java
QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20);
List<UserInfo> list = userInfoMapper.selectList(queryWrapper);
```
这段代码会生成SQL:`SELECT * FROM user_info WHERE age = 20`。eq()方法用于设置等于条件,其他还有ge(大于等于)、le(小于等于)等方法。
2. 条件查询(QueryWrapper lambda)
使用Lambda表达式可以使得代码更简洁,减少硬编码字段名的风险:
```java
QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(UserInfo::getAge, 20);
List<UserInfo> list = userInfoMapper.selectList(queryWrapper);
```
这里的lambda表达式UserInfo::getAge表示调用UserInfo对象的getAge方法,生成相同的SQL。
3. 条件查询(LambdaQueryWrapper)
LambdaQueryWrapper和QueryWrapper的lambda写法相似,但更推荐使用,因为它提供了更好的类型安全:
```java
LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserInfo::getAge, 20);
List<UserInfo> list = userInfoMapper.selectList(queryWrapper);
```
4. 分页查询
Mybatis-Plus支持便捷的分页查询,只需要提供当前页数和每页大小:
```java
Page<UserInfo> page = new Page<>(1, 10); // 第一页,每页10条
LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserInfo::getAge, 20);
List<UserInfo> userList = userInfoMapper.selectPage(page, queryWrapper);
```
`selectPage()`方法返回一个Page对象,包含了查询结果以及分页信息。
5. 自动填充字段
Mybatis-Plus支持自动填充创建时间和更新时间等字段,只需在实体类上添加@TableField注解,并指定insertStrategy或updateStrategy:
```java
@Data
@Entity
public class UserInfo {
@TableId
private Long id;
private String name;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
}
```
6. CRUD操作
Mybatis-Plus提供了便捷的插入、更新、删除方法,如insert(), updateById(), deleteById()等,使得数据库操作更加简单。
7. 主键生成策略
默认使用的是雪花算法(Snowflake),也可以自定义主键生成策略,例如使用数据库自增:
```java
@Data
@TableName("user_info")
public class UserInfo {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
// ...
}
```
`type = IdType.AUTO`表示使用数据库自增。
8. 批量操作
通过`insertBatch()`,`updateBatch()`等方法,可以进行批量插入和更新操作,提高性能。
9. 根据条件更新
`updateByMap()`方法允许你根据某些条件更新特定字段,无需手动构建复杂的SQL。
10. 数据权限控制
Mybatis-Plus支持数据权限控制,可以在全局配置中启用,然后在实体类中定义数据权限字段。
这些只是Mybatis-Plus的一部分技巧,实际使用中还有很多其他功能,如乐观锁、物理删除、SQL构造器等,都能帮助开发者更高效地管理数据库操作。在日常开发中,熟练掌握Mybatis-Plus的各种技巧,可以极大地提升开发效率。
2008-04-17 上传
2020-09-25 上传
2021-02-19 上传
2021-10-03 上传
2021-03-20 上传
2021-05-06 上传
2022-03-03 上传
2021-05-14 上传
weixin_38630697
- 粉丝: 4
- 资源: 950
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析