文章目录
前言
本文仅作为自己工作学习过程中的记录.
如有错误和纰漏欢迎指出.
我先说说为什么会遇到这样的问题,需要学习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)