Mybatis中的PageHelper分頁插件使用詳解


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>
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM