MyBatis基于pagehelper實(shí)現(xiàn)分頁(yè)原理及代碼實(shí)例
使用pagehelper分頁(yè)的原理是:
通過(guò)MyBatis的插件原理(類似web里的filter攔截器),在mapper配置文件將pagehelper注冊(cè)為MyBatis的插件,從而進(jìn)行分頁(yè)
1.通過(guò)maven引入pagehelper依賴:
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </dependency>
2.在MyBatis的mapper配置文件將pagehelper注冊(cè)為MyBatis的插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.pagehelper的用法:
private void selectAllUsers(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String num=request.getParameter("num");
if(null==num)
{
num="1";
}
// Page PageInfo
Page<?> page=PageHelper.startPage(Integer.parseInt(num),5); //設(shè)置第幾條記錄開(kāi)始,多少條記錄為一頁(yè)
//通過(guò)userService獲取user的信息,其sql語(yǔ)句為"select * from user" 但因pagehelp已經(jīng)注冊(cè)為插件,所以pagehelp會(huì)在原sql語(yǔ)句上增加limit,從而實(shí)現(xiàn)分頁(yè)
List<Person> persons=userService.getAllUsersBypageHelper(); //因而獲得的是分好頁(yè)的結(jié)果集
PageInfo<?> pageHelper=page.toPageInfo(); //獲取頁(yè)面信息的對(duì)象,里面封裝了許多頁(yè)面的信息 如:總條數(shù),當(dāng)前頁(yè)碼,需顯示的導(dǎo)航頁(yè)等等
request.setAttribute("persons",persons);
request.setAttribute("pagehelper",pageHelper);
request.getRequestDispatcher("/persons.jsp").forward(request,response);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入理解MyBatis中的一級(jí)緩存與二級(jí)緩存
這篇文章主要給大家深入的介紹了關(guān)于MyBatis中一級(jí)緩存與二級(jí)緩存的相關(guān)資料,文中詳細(xì)介紹MyBatis中一級(jí)緩存與二級(jí)緩存的工作原理及使用,對(duì)大家具有一定的參考性學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06
idea2020.1版本git提交項(xiàng)目到github上的方法
這篇文章主要介紹了idea2020.1版本git提交項(xiàng)目到github上的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Java中PropertyDescriptor的用法及說(shuō)明
這篇文章主要介紹了Java中PropertyDescriptor的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java中ArrayList與順序表的定義與實(shí)現(xiàn)方法
ArrayList是一個(gè)實(shí)現(xiàn)List接口的類,底層是動(dòng)態(tài)類型順序表,本質(zhì)也就是數(shù)組,動(dòng)態(tài)主要體現(xiàn)在它的擴(kuò)容機(jī)制,下面這篇文章主要給大家介紹了關(guān)于Java中ArrayList與順序表的定義與實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-07-07
java實(shí)現(xiàn)入棧push和出棧pop過(guò)程
文章詳細(xì)介紹了棧的概念、特點(diǎn)以及如何使用數(shù)組和鏈表實(shí)現(xiàn)棧,通過(guò)入棧(push)和出棧(pop)操作,展示了棧的數(shù)據(jù)處理過(guò)程,并提供了具體的代碼實(shí)現(xiàn)2024-12-12
Java使用try-with-resources實(shí)現(xiàn)自動(dòng)解鎖
項(xiàng)目中使用Redission分布式鎖,每次使用都需要顯示的解鎖,很麻煩,Java 提供了 try-with-resources 語(yǔ)法糖,它不僅可以用于自動(dòng)關(guān)閉流資源,還可以用于實(shí)現(xiàn)自動(dòng)解鎖,本文將介紹如何利用 try-with-resources 實(shí)現(xiàn)鎖的自動(dòng)釋放,需要的朋友可以參考下2025-01-01

