当前位置: 首页 > news >正文

【MybatisPlus快速入门】(3)SpringBoot整合MybatisPlus 之 Lombok插件安装及MybatisPlus分页代码示例

目录

  • 1.Lombok
    • 1.1 步骤1:添加lombok依赖
  • 2.2 步骤2:安装Lombok的插件
  • 1.3 步骤3:模型类上添加注解
  • 2 分页功能
    • 2.1 步骤1:调用方法传入参数获取返回值
    • 2.2步骤2:设置分页拦截器
    • 2.3 步骤3:运行测试程序

之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介,在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多,我们一个个来学习,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》
在这里插入图片描述

1.Lombok

上一节我们学习了MybatisPlus的CRUD功能,代码写到这,我们会发现DAO接口类的编写现在变成最简单的了,里面什么都不用写。反过来看看模型类的编写都需要哪些内容:

  • 私有属性
  • setter…getter…方法
  • toString方法
  • 构造函数

虽然这些内容不难,同时也都是通过IDEA工具生成的,但是过程还是必须得走一遍,那么对于模型类
的编写有没有什么优化方法?就是我们接下来要学习的Lombok。
概念

  • Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。

使用步骤

1.1 步骤1:添加lombok依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><!--<version>1.18.12</version>-->
</dependency>

**注意:**版本可以不用写,因为SpringBoot中已经管理了lombok的版本。

2.2 步骤2:安装Lombok的插件

新版本IDEA已经内置了该插件,如果删除setter和getter方法程序有报红,则需要安装插件
在这里插入图片描述
如果在IDEA中找不到lombok插件,可以访问如下网站
https://plugins.jetbrains.com/plugin/6317-lombok/versions
根据自己IDEA的版本下载对应的lombok插件,下载成功后,在IDEA中采用离线安装的方式进行安装。
在这里插入图片描述

1.3 步骤3:模型类上添加注解

Lombok常见的注解有:

  • @Setter:为模型类的属性提供setter方法
  • @Getter:为模型类的属性提供getter方法
  • @ToString:为模型类的属性提供toString方法
  • @EqualsAndHashCode:为模型类的属性提供equals和hashcode方法
  • @Data:是个组合注解,包含上面的注解的功能
  • @NoArgsConstructor:提供一个无参构造函数
  • @AllArgsConstructor:提供一个包含所有参数的构造函数

Lombok的注解还有很多,上面标红的三个是比较常用的,其他的大家后期用到了,再去补充学习。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;
}

说明:
Lombok只是简化模型类的编写,我们之前的方法也能用,比如有人会问:我如果只想要有name和password的构造函数,该如何编写?

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;public User(String name, String password) {this.name = name;this.password = password;}
}

这种方式是被允许的。

2 分页功能

基础的增删改查就已经学习完了,刚才我们在分析基础开发的时候,有一个分页功能还没有实现,在MP中如何实现分页功能,就是咱们接下来要学习的内容。
分页查询使用的方法是

 IPage<T> selectPage(IPage<T> page, Wrapper<T> queryWrapper)
  • IPage:用来构建分页查询条件
  • Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
  • IPage:返回值,你会发现构建分页条件和方法的返回值都是IPage

IPage是一个接口,我们需要找到它的实现类来构建它,具体的实现类,可以进入到IPage类中按
ctrl+h,会找到其有一个实现类为Page。

2.1 步骤1:调用方法传入参数获取返回值

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;//分页查询@Testvoid testSelectPage(){//1 创建IPage分页对象,设置分页参数,1为当前页码,3为每页显示的记录数IPage<User> page=new Page<>(1,3);//2 执行分页查询userDao.selectPage(page,null);//3 获取分页结果System.out.println("当前页码值:"+page.getCurrent());System.out.println("每页显示数:"+page.getSize());System.out.println("一共多少页:"+page.getPages());System.out.println("一共多少条数据:"+page.getTotal());System.out.println("数据:"+page.getRecords());}
}

2.2步骤2:设置分页拦截器

这个拦截器MP已经为我们提供好了,我们只需要将其配置成Spring管理的bean对象即可。

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){//1 创建MybatisPlusInterceptor拦截器对象MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();//2 添加分页拦截器mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mpInterceptor;}
}

说明:上面的代码记不住咋办呢?
这些内容在MP的官方文档中有详细的说明,我们可以查看官方文档类配置
在这里插入图片描述

2.3 步骤3:运行测试程序

在这里插入图片描述
如果想查看MP执行的SQL语句,可以修改application.yml配置文件,

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印SQL日志到控制台

打开日志后,就可以在控制台打印出对应的SQL语句,开启日志功能性能就会受到影响,调试完后记得
关闭。
在这里插入图片描述

http://www.lryc.cn/news/266629.html

相关文章:

  • SpaceDesk如何连接平板/PC(生产力副屏)
  • 61.SVN版本控制系统
  • 操作系统 内存管理篇
  • 深度学习中用来训练的train.py 探究学习2.0( 数据预处理)
  • vscode debug c++代码
  • HarmonyOS的功能及场景应用
  • 汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?
  • VS Code无法远程ubuntu
  • 大数据开发职业规划
  • XxIJob入门-示例
  • 单挑力扣(LeetCode)SQL题:1549. 每件商品的最新订单(难度:中等)
  • Javacv-利用Netty实现推流直播复用(flv)
  • cfa一级考生复习经验分享系列(十一)
  • Nginx基本配置内容
  • Jenkins安装与设置(插件安装失败,版本问题解决)
  • 精度提升10个点!HD-Painter:无需训练的文本引导高分辨率图像修复方案!
  • javaweb初体验
  • 手写爬虫框架
  • 基于Kettle和帆软Finereport的血缘解析
  • 给qemu虚机更换(Windows PE)光盘
  • python 神经网络归纳
  • Python高级语法与正则表达式
  • 【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解
  • Python如何将图片转换成字符
  • 国家开放大学形成性考核 统一资料 参考试题
  • 4.7 【共享源】流的生产者(二)
  • 流量录制回放工具在自动化测试领域应用探索
  • 【高数定积分求解旋转体体积】 —— (上)高等数学|定积分|柱壳法|学习技巧
  • Ubuntu20.04 及深度学习环境anaconda、cuda、cudnn、pytorch、paddle2.3安装记录
  • 场景切割CVPr2022 SceneSegmentation