未使用SpringBoot
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.1</version>
</dependency>
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
List<Car> selectAll();
<select id="selectAll" resultType="Car">select * from t_car
</select>
@Test
public void testPageHelper() throws Exception{SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().b
uild(Resources.getResourceAsStream("mybatis-config.xml"));SqlSession sqlSession = sqlSessionFactory.openSession();CarMapper mapper = sqlSession.getMapper(CarMapper.class);// 開啟分?PageHelper.startPage(2, 2);// 執?查詢語句List<Car> cars = mapper.selectAll();// 獲取分?信息對象PageInfo<Car> pageInfo = new PageInfo<>(cars, 5);System.out.println(pageInfo);
}
執?結果:
PageInfo{pageNum=2, pageSize=2, size=2, startRow=3, endRow=4, total=6, pages=3,
list=Page{count=true, pageNum=2, pageSize=2, startRow=2, endRow=4, total=6, pages=3,
reasonable=false, pageSizeZero=false}[Car{id=86, carNum='1234', brand='豐?霸道',
guidePrice=50.5, produceTime='2020-10-11', carType='燃油?'}, Car{id=87, carNum='1234',
brand='豐?霸道', guidePrice=50.5, produceTime='2020-10-11', carType='燃油?'}], prePage=1,
nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true,
navigatePages=5, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]}
SpringBoot中
PageHelper.startPage(int PageNum,int PageSize):用來設置頁面的位置和展示的數據條目數,我們設置每頁展示5條數據。PageInfo用來封裝頁面信息,返回給前臺界面。PageInfo中的一些我們需要用到的參數如下表:
PageInfo.list?? ?結果集
PageInfo.pageNum?? ?當前頁碼
PageInfo.pageSize?? ?當前頁面顯示的數據條目
PageInfo.pages?? ?總頁數
PageInfo.total?? ?數據的總條目數
PageInfo.prePage?? ?上一頁
PageInfo.nextPage?? ?下一頁
PageInfo.isFirstPage?? ?是否為第一頁
PageInfo.isLastPage?? ?是否為最后一頁
PageInfo.hasPreviousPage?? ?是否有上一頁
PageHelper.hasNextPage?? ?是否有下一頁
(1)引入pom.xml
<!-- 分頁插件 -->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version>
</dependency>
(2)打開application.properties,添加如下幾行配置信息
#分頁插件
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
創建controller層
Mapper文件中, SQL不用增加 limit分頁指令,需要什么直接查就可以,Pagehelper 可以自動實現分頁!
package com.ithuang.demo.controller;import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.List;@RestController
public class OrderInfoController {@Resourceprivate OrderInfoService orderInfoService;@GetMapping("/getOrderInfoList")public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,@RequestParam(value = "pageSize",defaultValue = "3") int pageSize){return orderInfoService.getOrderInfoList(pageNow,pageSize);}
}
2. 創建Service層
package com.ithuang.demo.service;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;@Service
public class OrderInfoService {@Resourceprivate OrderInfoMapper orderInfoMapper;public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {PageHelper.startPage(pageNow,pageSize);List<OrderInfo> orderInfoList = orderInfoMapper.getOrderInfoList();PageInfo<OrderInfo> userPageInfo = new PageInfo<>(orderInfoList);return userPageInfo.getList();}
}
3. 創建Mapper層
package com.ithuang.demo.mapper;import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface OrderInfoMapper {List<OrderInfo> getOrderInfoList();
}
5. 編寫xml文件?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ithuang.demo.mapper.OrderInfoMapper"><select id="getOrderInfoList" parameterType="int" resultType="com.ithuang.demo.bean.OrderInfo">SELECT * FROM order_info</select>
</mapper>