PageHelper使用輔助文檔
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
使用例子:
@RequestMapping(value= {"list",""}) private String list(@RequestParam(value="pn",defaultValue="1")Integer pn,Order order,HttpServletRequest request,HttpServletResponse response,Model model) { // startPage(pn,3)的含義是pn 是當前的頁碼 其中的3是每一頁顯示的條數
PageHelper.startPage(pn, 3);
//這是和數據庫進行交互的一個方法 List<Order> orderList = orderService.getOrdersByFactor(order);
// 創建PageInfo對象使用的是他的含有兩個參數的構造器,第一個參數是查詢出的結果列表List,第二個參數是連續顯示的頁碼,比如現在處於第二頁,則連續顯示的頁碼就是:1-2-3 //如果 現在處於第六頁的話,頁面顯示的頁碼為:5-6-7
PageInfo page = new PageInfo(orderList,3); model.addAttribute("page", page); //model.addAttribute("orderList", orderList); return "modules/goodMan/orderList2"; }
上述在查詢完畢訂單列表之后,用pageInfo封裝之后,這個對象是特別的有用的,內部含有好多的屬性,可以讓我們通過Model對象放到Response域中傳回前台,進行利用
常用的PageInfo對象的屬性如下
public class PageInfo<T> implements Serializable { private static final long serialVersionUID = 1L; //當前頁 private int pageNum; //每頁的數量 private int pageSize; //當前頁的數量 private int size; //由於startRow和endRow不常用,這里說個具體的用法 //可以在頁面中"顯示startRow到endRow 共size條數據" //當前頁面第一個元素在數據庫中的行號 private int startRow; //當前頁面最后一個元素在數據庫中的行號 private int endRow; //總記錄數 private long total; //總頁數 private int pages; //結果集 private List<T> list; //前一頁 private int prePage; //下一頁 private int nextPage; //是否為第一頁 private boolean isFirstPage = false; //是否為最后一頁 private boolean isLastPage = false; //是否有前一頁 private boolean hasPreviousPage = false; //是否有下一頁 private boolean hasNextPage = false; //導航頁碼數 private int navigatePages; //所有導航頁號 private int[] navigatepageNums; //導航條上的第一頁 private int navigateFirstPage; //導航條上的最后一頁 private int navigateLastPage;
PageInfo的三種構造器
通過源碼可以看出來,在PageInfo這個類中,包含3個構造方法, 1.無參 public PageInfo() { } 2.一個參數 public PageInfo(List<T> list) { this(list, 8); } 3.兩個參數,這里第一個參數就是傳遞的List<Employee> emps結果集,內部會進行自動的包裝 public PageInfo(List<T> list, int navigatePages) {....}
當然在使用PageInfo插件之前需要在項目中對其依賴進行引入
1、引入到pom.xml文件中
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.0.0</version> </dependency>
1、到mybatis的配置文件中對pageHelper插件進行注冊
mybatis-config.xml
<!-- 插件配置 --> <!--@zjh20200407 分頁插件的注冊 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>