使用的是分页插件PageHelper
参考文档:http://blog.csdn.net/woniu211111/article/details/54562307
http://www.cnblogs.com/ganchuanpu/archive/2016/12/09/6147911.html
在springboot上搭建的。
过程比较简单:
1.引入依赖:
<!-- springboot版本的pagehelper -->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
我没有在yml文件中做任何配置。
然后直接使用测试类。
@Test
public void pageTest() {
Integer pageNum = 1;
Integer pageSize = 2;
PageHelper.startPage(pageNum,pageSize);
List<CourseEntity>courses = courseMapper.selectAll();
PageInfo pageInfo = new PageInfo(courses);
Page<CourseEntity>list =(Page<CourseEntity>)courses;
System.out.println(list);
System.out.println(pageInfo);
System.out.println(list.getResult());
}
就是直接将已经写好的course的查询所有课程的方法(返回的是List<courseEntity>,就是正常的dao层方法查询)拿过来包装成page。
控制台打印的时候 不会打印出里面包含的list信息。
打印的信息如下:
Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=2, pages=1, reasonable=false, pageSizeZero=false}
PageInfo{pageNum=1, pageSize=2, size=2, startRow=1, endRow=2, total=2, pages=1, list=Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=2, pages=1, reasonable=false, pageSizeZero=false}, prePage=0, nextPage=0, isFirstPage=true, isLastPage=true, hasPreviousPage=false, hasNextPage=false, navigatePages=8, navigateFirstPage1, navigateLastPage1, navigatepageNums=[1]}
Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=2, pages=1, reasonable=false, pageSizeZero=false}
不过,如果用Json返回,相同的内容显示就含有了包含list中的信息了,用的Controller返回的信息。
@Controller
public class BackCourseController {
@Autowired CourseMapper courseMapper;
@GetMapping("/course/page")
@ResponseBody
public PageInfo getPageCourseInfo() {
Integer pageNum = 1;
Integer pageSize = 2;
PageHelper.startPage(pageNum,pageSize);
List<CourseEntity>courses = courseMapper.selectAll();
PageInfo pageInfo = new PageInfo(courses);
Page<CourseEntity>list =(Page<CourseEntity>)courses;
System.out.println(list);
System.out.println(pageInfo);
System.out.println(list.getResult());
return pageInfo;
}
将这些信息通过json在线解析(网址:http://www.bejson.com/),的确是json数据:
{
"pageNum": 1,
"pageSize": 2,
"size": 2,
"startRow": 1,
"endRow": 2,
"total": 2,
"pages": 1,
"list": [
{
"id": 1,
"times": 2,
"depName": "计算机科学与软件工程学院",
"depMajor": "嵌入式系统",
"courseName": "软件理论",
"priority": 1,
"teacher": "陈怡香",
"student": 30,
"start": 2016,
"end": 2017,
"status": 0,
"place": "数学馆103",
"time": null
},
{
"id": 2,
"times": 2,
"depName": "计算机科学与软件工程学院",
"depMajor": "嵌入式系统",
"courseName": "并行软件设计",
"priority": 1,
"teacher": "谷守珍",
"student": 28,
"start": 2017,
"end": 2018,
"status": 1,
"place": "数学馆103",
"time": null
}
],
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1,
"lastPage": 1,
"firstPage": 1
}
如果返回的不是PageInfo,而是Page:
@Controller
public class BackCourseController {
@Autowired CourseMapper courseMapper;
@GetMapping(value="/course")
public String course() {
return "table-course";
}
@GetMapping("/course/page")
@ResponseBody
public Page getPageCourseInfo() {
Integer pageNum = 1;
Integer pageSize = 2;
PageHelper.startPage(pageNum,pageSize);
List<CourseEntity>courses = courseMapper.selectAll();
PageInfo pageInfo = new PageInfo(courses);
Page<CourseEntity>list =(Page<CourseEntity>)courses;
System.out.println(list);
System.out.println(pageInfo);
System.out.println(list.getResult());
//return pageInfo;
return list;
}
}
发现只有course集合的信息了,没有pageInfo相关的信息了。
[
{
"id": 1,
"times": 2,
"depName": "计算机科学与软件工程学院",
"depMajor": "嵌入式系统",
"courseName": "软件理论",
"priority": 1,
"teacher": "陈怡香",
"student": 30,
"start": 2016,
"end": 2017,
"status": 0,
"place": "数学馆103",
"time": null
},
{
"id": 2,
"times": 2,
"depName": "计算机科学与软件工程学院",
"depMajor": "嵌入式系统",
"courseName": "并行软件设计",
"priority": 1,
"teacher": "谷守珍",
"student": 28,
"start": 2017,
"end": 2018,
"status": 1,
"place": "数学馆103",
"time": null
}
]
也就是Page只含有里面的数据信息,而PageInfo除了有Page含有的信息,还有各种上一页,最后也,总页数,这些相关信息。
根据需要返回不同的结果