Mybatis分頁查詢的實現(xiàn)(Rowbounds和PageHelper)
我們實現(xiàn)查詢除了
@org.junit.Test
public void test02(){
SqlSession session = MybatisUtil.getSession();
UserDao mapper = session.getMapper(UserDao.class);
List<User> allUser = mapper.getAllUser();
session.close();
for (User user : allUser) {
System.out.println(user);
}
}
還有這樣的方式,Mybatis官網有介紹
@org.junit.Test
public void test06(){
SqlSession session = MybatisUtil.getSession();
//參數(shù)是接口的全限定類名加包名
List<User> users = session.selectList("com.dongmu.dao.UserDao.getAllUser");
for (User user : users) {
System.out.println(user);
}
session.close();
}
那么我們下面就學習一下一個

@org.junit.Test
public void test07(){
RowBounds bounds =new RowBounds(0,3);
SqlSession session = MybatisUtil.getSession();
List<User> users = session.selectList("com.dongmu.dao.UserDao.getAllUser",null,bounds);
for (User user : users) {
System.out.println(user);
}
session.close();
}

這里總結一下自己注意到的細節(jié),它的sql語句我們發(fā)現(xiàn)是查詢的所有的,所以它實際上是邏輯分頁,也就是說把結果全部查詢除了然后進行按游標分頁。
物理分頁:物理分頁就是數(shù)據(jù)庫本身提供了分頁方式,如MySQL的limit,oracle的rownum ,好處是效率高,不好的地方就是不同數(shù)據(jù)庫有不同的搞法
邏輯分頁:利用游標分頁,好處是所有數(shù)據(jù)庫都統(tǒng)一,壞處就是因為先查詢到所有數(shù)據(jù),所有效率低。
下面我們再介紹一個分頁插件PageHelper
使用方式:
加入依賴:
<dependency> ? ? ? ? ? ? <groupId>com.github.pagehelper</groupId> ? ? ? ? ? ? <artifactId>pagehelper</artifactId> ? ? ? ? ? ? <version>5.1.10</version> ? ? ? ? </dependency>
在mybatis的主配置文件中,在<environments>之前加入
<plugins> ?<plugin interceptor="com.github.pagehelper.PageInterceptor" /> </plugins>
在進行失去了查詢之前使用方法:
PageHelper.startPage(pageNum,pageSize);

查詢結果

可以發(fā)現(xiàn)我們的PageHelper用到的是PreparedStatement進行的物理分頁查詢。
到此這篇關于Mybatis分頁查詢的實現(xiàn)(Rowbounds和PageHelper)的文章就介紹到這了,更多相關Mybatis分頁查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一文帶你了解Java創(chuàng)建型設計模式之原型模式
原型模式其實就是從一個對象在創(chuàng)建另外一個可定制的對象,不需要知道任何創(chuàng)建的細節(jié)。本文就來通過示例為大家詳細聊聊原型模式,需要的可以參考一下2022-09-09
IntelliJ IDEA連接MySQL數(shù)據(jù)庫詳細圖解
今天小編就為大家分享一篇關于intellij idea連接mysql數(shù)據(jù)庫詳細圖解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
使用springboot跳轉到指定頁面和(重定向,請求轉發(fā)的實例)
這篇文章主要介紹了使用springboot跳轉到指定頁面和(重定向,請求轉發(fā)的實例),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12

