MyBatisPlus+Lombok实现分页功能的方法详解
作者:夏志121 发布时间:2021-07-04 06:34:57
一、Lombok
从上一篇博客可看出,DAO接口类的编写变得简单,反过来看模型,编写还需要(私有属性、setter...getter...方法、toString方法、构造函数等内容),对于模型类有什么优化方法,可以用Lombok。
概念:Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。
使用步骤
1、添加Lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--<version>1.18.12</version>-->
</dependency>
注意:版本可以不写,因为SpringBoot已经管理了lombok版本。
2、安装Lombok插件
新版本的IDEA已经内置类该插件,如果删除setter和getter方法程序会报红,则需要安装插件。
如果找不到Lombok插件,可以访问如下网站
https://plugins.jetbrains.com/plugin/6317-lombok/versions
根据字节IDEA的版本下载对应的Lombok版本,下载成功后,在IDEA中采用离线安装的方式进行安装
选择这个位置的选择进行离线安装,进入后选择自己下载的插件包,点击OK即可进行离线安装。
3、模型类上添加注解
Lombok常见的注解有:
● @Setter:为模型类的属性提供setter方法
● @Getter:为模型类的属性提供getter方法
● @ToString:为模型类的属性提供toString方法
● @EqualsAndHashCode:为模型类的属性提供equals和hashcode方法
● @Data:是一个组合注解,包含上面的注解的功能
● @NoArgsConstructor:提供一个无参构造函数
● @AllArgsConstruotor:提供一个包含所有参数的构造函数
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的构造方法,在里面添加即可。
二、分页功能
分页查询使用的方法:
IPage<T> selectPage (IPage<T> page, wrapper<T> querywrapper);
IPage:用来构建分页查询的条件
Wrapper:用来构建添加查询的条件,目前我们没有可直接传为Null
IPage:返回值,构建分页条件和方法的返回值都是IPage
IPage是一个接口,我们要实现类来构建,具体实现类,可进入到IPage类中按ctrl+h,会找到一个实现类为Page。
1、调用方法传入参数获取返回值
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
@Autowired
private UserDao userDao;
//分页查询
@Test
void testSelectPage(){
//1 创建IPage分页对象,设置分页参数,1为当前页码,3为每页显示的记录数
IPage<User> page=new Page<>(2,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、设置分页 *
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//1 创建MybatisPlusInterceptor * 对象
MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();
//2 添加分页 *
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
说明:上面的内容在MP的官方文档中都有。
3、运行测试程序
如果想看MP执行的SQL语句,可以修改application.yml配置文件
# 开启mp的日志(输出到控制台)
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
打开日志后,就可以在控制台打印出对应的SQL语句,开启日志功能 性能就会受到影响,调试完后记得关闭
来源:https://blog.csdn.net/m0_61961937/article/details/125904275


猜你喜欢
- 为什么要使用路由在之前我们的代码中,页面跳转使用的代码如下所示:Navigator.of(context).push( Mate
- 本文实例讲述了Android编程之动态壁纸。分享给大家供大家参考,具体如下:从android 2.1版本起引入了动态壁纸的概念,熟悉andr
- 1.把springboot项目打包成三个jar包,并指定端口为14341,14342,143432.下载腾讯云免费ssl证书,解压后会出现如
- 0x00 关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个
- 很多朋友问小编springboot项目中怎么集成Swagger呢?swagger世界上最好的api管理工具前言我们为什么要使用api管理工具
- Android 自定义View实现抽屉效果说明这个自定义View,没有处理好多点触摸问题View跟着手指移动,没有采用传统的scrollBy
- 本文旨在通过重写Comparator接口的compare()方法实现对List的升序、降序、倒序排序。首先明确一点:compare(Inte
- 前言Spring 5发布有两年了,随Spring 5一起发布了一个和Spring WebMvc同级的Spring WebFlux。这是一个支
- 本文实例讲述了C#图像处理之头发检测的方法。分享给大家供大家参考。具体如下://发色检测(YCbCr颜色空间)public Bitmap H
- 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理
- C#实现IDispose接口.net的GC机制有两个问题:首先GC并不能释放所有资源,它更不能释放非托管资源。其次,GC也不是实时的,所有G
- 本文实例为大家分享了Java金额大小写转换的具体代码,供大家参考,具体内容如下/** * @ClassName: NumberConver
- 前言:如果让大家说出一款国内比较热门的社交软件,那无疑就是QQ和微信了,说到微信,无不例外的会想到微信公众号和小程序,所以现在它们已经是很多
- 本文实例为大家分享了本地图片或者网络图片高斯模糊效果(毛玻璃效果),具体内容如下首先看效果图1.本地图片高斯模糊2.网络图片高斯模糊gith
- 本文实例讲述了Android编程实现画板功能的方法。分享给大家供大家参考,具体如下:Android实现画板主要有2种方式,一种是用自定义Vi
- C++在vscode中的多文件编程相信有很多的小伙伴在一开始的时候,都会对vscode的多文件编程有很多的疑问,网上也有很多的教学,不过网上
- 看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!!人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想
- Java java.lang.ExceptionInInitializerError 错误如何解决引起 Java.lang.Ex
- 反编译jar包并修改class文件重新打包这两天碰到一个需求:需要修改一个jar包中的逻辑代码,并且重新打包本来是很简单的问题,但是因为这个
- 这里使用的是dynamic-datasource-spring-boot-starter ,它是一个基于springboot的快速集成多数据