Mybatis-PageHelper分页插件-SpringBoot

PageHelper

PageHelper是mybatis的通用分页插件,通过mybatis的拦截器实现分页功能,拦截sql查询请求,添加分页语句, 最终实现分页查询功能。

我的课程具有分页功能,本项目使用Pagehelper实现Mybatis分页功能开发,由于本项目使用springboot开发,在 springboot上集成pagehelper(https://github.com/pagehelper/pagehelper-spring-boot)]

PageHelper的使用方法及原理如下:
在调用dao的service方法中设置分页参数:PageHelper.startPage(page, size),分页参数会设置在ThreadLocal中 PageHelper在mybatis执行sql前进行拦截,从ThreadLocal取出分页参数,修改当前执行的sql语句,添加分页 sql。

最后执行添加了分页sql的sql语句,实现分页查询。
在这里插入图片描述
1)添加依赖

<dependency> 
	<groupId>com.github.pagehelper</groupId> 
	<artifactId>pagehelper‐spring‐boot‐starter</artifactId> 
	<version>1.2.4</version> 
</dependency

2)配置pageHelper
在application.yml中配置pageHelper操作的数据库类型:

pagehelper:
  helper-dialect: mysql
  reasonable: true

Dao
1)mapper 接口

@Mapper 
public interface CourseMapper {  
	Page<CourseInfo> findCourseListPage(CourseListRequest courseListRequest); 
}

2)mapper.xml映射文件

<select id="findCourseListPage" resultType="com.ginger.framework.domain.course.ext.CourseInfo" parameterType="com.ginger.framework.domain.course.request.CourseListRequest"> 
	SELECT course_base.*, (SELECT pic FROM course_pic WHERE courseid = course_base.id) pic FROM course_base 
</select>

3)测试Dao

//测试分页 
@Test 
public void testPageHelper(){ 
	PageHelper.startPage(10,1); 
	CourseListRequest courseListRequest = new CourseListRequest(); 
	Page<CourseInfo> courseListPage = courseMapper.findCourseListPage(courseListRequest); 
	List<CourseInfo> result = courseListPage.getResult(); 
	System.out.println(courseListPage); 
}

测试结果

CourseBase(id=297e7c7c62b888f00162b8a7dec20000, name=test_java基础33, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b888f00162b8a965510001, name=test_java基础, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8ab13910000, name=java基础3, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8ab56ba0001, name=java基础3, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8ab70e90002, name=java基础3, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8accd4c0003, name=java基础4, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8ad78a10004, name=java基础5, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8aa9d0162b8ae50300005, name=java基础5, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8afe20162b8b0477c0000, name=test_java基础6, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
CourseBase(id=297e7c7c62b8b3ff0162b8b58c260000, name=test_java基础6, users=null, mt=null, st=null, grade=null, studymodel=null, teachmode=null, description=null, status=null, companyId=null, userId=null)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值