文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyBatisPlus+Lombok实现分页功能的方法详解

2024-04-02 19:55

关注

一、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语句,开启日志功能 性能就会受到影响,调试完后记得关闭

到此这篇关于MyBatisPlus+Lombok实现分页功能的方法详解的文章就介绍到这了,更多相关MyBatisPlus Lombok分页内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯