【什么是分页查询,项目实战中如何去用】MyBatis-Plus的用插件的简单分页查询的和多表自定义分页查询(mybatis的条件查询-动态sql)

本文介绍了数据库分页查询基础,以及在MyBatis-Plus中如何实现分页查询,包括无条件和有条件的基础分页,以及多表联查的分页。通过实例代码展示了使用MyBatis-Plus的分页插件和动态SQL进行分页查询的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文仅作为自己工作学习过程中的记录.
如有错误和纰漏欢迎指出.
       我先说说为什么会遇到这样的问题,需要学习MyBatis-Plus分页.
       这是本新手程序员写的第一篇文章,在写这篇文章的时候,我是大四,刚找到工作开始实习不久.是信息类专业突然转来做Java后端开发,所有相关的知识学的都比较短,比较着急,我原本其他语言的基础开可以,但是只学了一个星期的JAVA,然后过了下Springboot的项目,和相关的知识,例如mybatis,都是草草的过了一遍,了解了一下,包括sql数据库学的也不是很扎实.好歹底子还不错,学起来比较快,面试也准备的比较认真, 秋招前找到了一家公司,面试通过开始实习.
       在摸鱼了不到两天,很快,我的指导老师让我接触到了项目组正在做的项目.也可能是为了探探底,让我先写点东西.看看我能写到什么程度.
       让我写项目里一些边角料的活,就把已经做好了查询的部分,写一个分页,项目组的项目用的是mybatis-plus,指导老师问我会不会.其实我是看过的,过过一遍的,但是包括mybatis本身,我都不怎么熟练.我就只能先含糊一下.我说之前只学了mybatis,我也都只粗略了解过,可以试试,然后自己查查.
       然后发现网上其实很多讲分页查询的说的感觉都不是很清楚,或者说对于基础比较差的人来说,没那么容易看懂.
       那时候我自然也没写出来,因为是多表联查的,要手动写sql.在后来几天,我自己边工作边学习,也查了资料,跟着学习视频做项目,基础补的更扎实了一点.我在来回头看我刚来公司那几天遇到的问题.我觉得不行,我得记录一下,也算是一种经验.


一、从最基础的方面来说,什么是分页查询?

对于数据库基础不是很好的人来说,可能上来就对这个概念比较模糊.
说白了,对于mysql语言来说 就是 limit
举个例:

select * from emp limit 2 --列出前两条
select * from emp limit 1,2 --从第二条开始,展示2条记录
select * from emp limit 0,3 --从第一条开始,展示3条记录--前三条

这个是mysql里分页查询的简单操作,更详细可以去查查讲sql语句的文章,这里不细讲
而在项目实战中,例如用到mybtis连接数据库,我们去做分页查询,通常还是要传参,加上查询的条件,而用到mybtisPlus通常不需要我们写sql语句,也会有其他更便捷的写法。

二、在Mybatis-Plus里简单实现最基础的分页查询

1.简单的无查询条件的分页查询,使用mybatis-plus自带的分页插件

首先在一个springMVC项目中,如果我们要用的是mybatisPlus连接数据库的话。
要做分页查询的话,最简单最便捷的肯定是直接用分页插件,
在启动类中注入分页Bean

    /**
     * 分页插件
     * */
    @Bean
    public PaginationInterceptor paginationInterceptor(){
   
   
        return new PaginationInterceptor();
    }

以我手上正在学习和参考的视频里的教学项目为例(后面会放地址连接):
简单介绍是一个对老师的表进行分页查询,具体里面的东西不详细列出来,请忽略掉我例子里面类对象的本身,我只是以这个接口进行细讲

    @ApiOperation(value = "讲师的分页查询")
    @GetMapping("pageTeacher/{current}/{limit}")
    public R pageListTeacher(@PathVariable long current,@PathVariable long limit){
   
   
        //创建一个page对象
        Page<EduTeacher> pageTeacher = new Page<>(current,limit);
        eduTeacherService.page(pageTeacher,null);
        //这个为null的参数是具体的查询条件,在这里没有,所以是null
        long total = pageTeacher.getTotal();//总记录数
        List<EduTeacher> records = pageTeacher.getRecords();//数据list集合
        return R.ok().data("total",total)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值