springboot+mybatis怎麼集成使用pagehelper插件

學習之前要確保已經熟悉springboot的使用以及mybatis的使用:
話不多上,先上依賴:

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.3</version>
        </dependency>

這裏版本建議和我的一致,不然可能出現結果集list加載不出來的情況。
使用的前提是數據庫以及mybatis已經配置好了。
首先先在dao層的接口裏面配置上查詢所有的方法:
dao層接口:

    //存儲Blog
    int saveBlog(Blog blog);

接着配置好mapper:
mapper:

    <!--查找全部博客-->
    <select id="queryBlog" resultType="com.hncu.cocoblog.entities.Blog">
        select * from t_blog
    </select>

針對各位自己的項目或者上手,就是在dao層寫上查詢所有記錄的方法,在mapper進行好配置。
接下來就是如何使用了:
Service層:

    @Override
    public PageInfo findPage(int page, int pageSize) {
        PageHelper.startPage(page,pageSize);
        List<Blog> list=blogDao.queryBlog(); //這裏的是我的查詢所有的方法,根據情況,改成自己的
        PageInfo<Blog> pageInfo=new PageInfo<Blog>(list); //將list(全部結果傳進去) 泛型根據情況而定
        return pageInfo;  //返回pageInfo對象給controller
    }

Service層寫完了,接下來是Controller:

    // 分頁查詢博客
    @GetMapping("/getBlogByPage/{page}")
    public String getBlogByPage(@PathVariable("page") Integer page, Model model) {
        PageInfo<Blog> pageInfo = blogService.findPage(page, 8); //獲取指定頁的8條信息
        //這些信息都需要傳遞到前端做分頁
        model.addAttribute("pageNum", pageInfo.getPageNum());//得到當前頁
        model.addAttribute("pages", pageInfo.getPages()); //得到總頁數
        model.addAttribute("list", pageInfo.getList()); //將分頁得到的list集合返回到前端
        return "manageBlog";
    }

通過從Service層傳上來的pageInfo對象來獲取需要的信息,而我們只需要向Service傳遞兩個參數PageHelper.startPage(page,pageSize);,一個是頁碼,一個是每頁的記錄數目。

以上就是pagehelper的使用,接下來看一下參數:

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的set/get方法來獲取即可!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章