SpringBoot利用pagehelper插件实现分页

我们都知道,SpringBoot是一个集成框架,它已经在内部将spring、springmvc、mysql等都已经集成进去了,就连tomcat它也将其集成进去了,这里我们来使用SpringBoot给大家复习一下分页功能,使用的就是pagehelper这个插件
项目结构:
SpringBoot利用pagehelper插件实现分页_第1张图片
项目中涉及到的表person结构为:
SpringBoot利用pagehelper插件实现分页_第2张图片
这里我在新建springboot项目的时候只选择了web,所以我在pom文件中将mysql、mybatis、DBCP(数据库连接池)、还有分页插件pagehelper依赖进来:



	4.0.0
	
		org.springframework.boot
		spring-boot-starter-parent
		2.1.3.RELEASE
		 
	
	com.xalo
	SpringBootAndPageHolder
	0.0.1-SNAPSHOT
	SpringBootAndPageHolder
	Demo project for Spring Boot

	
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		

		
		
           org.springframework.boot
           spring-boot-devtools
        
		
		
		
			mysql
			mysql-connector-java
		
		
			org.springframework.boot
			spring-boot-starter-jdbc
		
		
		
		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			2.0.0
		
		
		
		
			org.apache.commons
    		commons-dbcp2
		
		
    		org.apache.commons
    		commons-pool2
		
		
		
   			com.github.pagehelper
   			pagehelper-spring-boot-starter
   			1.2.5
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	


controller层代码:

package com.example.demo.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.example.demo.model.Person;
import com.example.demo.service.inter.PageHelperServiceInter;

@Controller
public class PageHelperController {
	@Autowired
	private PageHelperServiceInter service;

	
	@RequestMapping("/pagehelper")
	@ResponseBody
	public List pageHelperController(int page,int size) {
		System.out.println("controller");
		return service.personService(page, size);
	}
}

这里为了解耦,我将service的实现类和接口分开来创建了:
service接口:

package com.example.demo.service.inter;


import java.util.List;

import com.example.demo.model.Person;

public interface PageHelperServiceInter {
	public List personService(int page,int size); 
}

service实现类:

package com.example.demo.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.demo.dao.PageHelperDao;
import com.example.demo.model.Person;
import com.example.demo.service.inter.PageHelperServiceInter;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
@Service("service")
public class PageHelperServiceImpl implements PageHelperServiceInter {
	@Autowired
	private PageHelperDao pageHelperDao;
	@Override
	public List personService(int page, int size) {
		PageHelper.startPage(page, size);//使用分页插件,最核心的一句,即开启分页
		List list = pageHelperDao.selectDao();
		return list;
	}
	
}

dao层

package com.example.demo.dao;


import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.example.demo.model.Person;

@Mapper
public interface PageHelperDao {
	public List selectDao();
}

dao层的映射文件:




	

测试所用到的实体类person:

package com.example.demo.model;

public class Person {
	private String name;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
	
}

SpringBoot主要配置文件,里面配置了数据库连接池、分页插件的配置(可省略):
SpringBoot利用pagehelper插件实现分页_第3张图片
这里我在resources中新建了dao/mappers用来存放dao等的映射文件
到这里其实springboot实现分页就算完成了,其实在springboot中使用pagehelper插件实现分页最重要的一句就是PageHelper.startPage(page, size);其余的就是插件帮我们完成了
我们来测试一下:
在这里插入图片描述

你可能感兴趣的:(springboot框架)