Mybatis分頁查詢的實(shí)現(xiàn)(Rowbounds和PageHelper)
我們實(shí)現(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官網(wǎng)有介紹
@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(); }
那么我們下面就學(xué)習(xí)一下一個(gè)
@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é)一下自己注意到的細(xì)節(jié),它的sql語句我們發(fā)現(xiàn)是查詢的所有的,所以它實(shí)際上是邏輯分頁,也就是說把結(jié)果全部查詢除了然后進(jìn)行按游標(biāo)分頁。
物理分頁:物理分頁就是數(shù)據(jù)庫本身提供了分頁方式,如MySQL的limit,oracle的rownum ,好處是效率高,不好的地方就是不同數(shù)據(jù)庫有不同的搞法
邏輯分頁:利用游標(biāo)分頁,好處是所有數(shù)據(jù)庫都統(tǒng)一,壞處就是因?yàn)橄炔樵兊剿袛?shù)據(jù),所有效率低。
下面我們再介紹一個(gè)分頁插件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>
在進(jìn)行失去了查詢之前使用方法:
PageHelper.startPage(pageNum,pageSize);
查詢結(jié)果
可以發(fā)現(xiàn)我們的PageHelper用到的是PreparedStatement進(jìn)行的物理分頁查詢。
到此這篇關(guān)于Mybatis分頁查詢的實(shí)現(xiàn)(Rowbounds和PageHelper)的文章就介紹到這了,更多相關(guān)Mybatis分頁查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sentinel?整合spring?cloud限流的過程解析
這篇文章主要介紹了sentinel?整合spring?cloud限流,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Java基本類型與byte數(shù)組之間相互轉(zhuǎn)換方法
下面小編就為大家?guī)硪黄狫ava基本類型與byte數(shù)組之間相互轉(zhuǎn)換方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08SpringCloud gateway如何修改返回?cái)?shù)據(jù)
這篇文章主要介紹了SpringCloud gateway如何修改返回?cái)?shù)據(jù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java基于Socket的文件傳輸實(shí)現(xiàn)方法
這篇文章主要介紹了Java基于Socket的文件傳輸實(shí)現(xiàn)方法,結(jié)合實(shí)例分析了Java使用Socket實(shí)現(xiàn)文件傳輸?shù)慕⑦B接、發(fā)送與接收消息、文件傳輸?shù)认嚓P(guān)技巧,需要的朋友可以參考下2015-12-12IDEA創(chuàng)建Java項(xiàng)目導(dǎo)出Jar包運(yùn)行
這篇文章主要介紹了IDEA創(chuàng)建Java項(xiàng)目導(dǎo)出Jar包運(yùn)行,需要的朋友可以參考下2021-01-01Spring之InitializingBean接口和DisposableBean接口的使用
這篇文章主要介紹了Spring之InitializingBean接口和DisposableBean接口的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Java Swing實(shí)現(xiàn)窗體添加背景圖片的2種方法詳解
這篇文章主要介紹了Java Swing實(shí)現(xiàn)窗體添加背景圖片的2種方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Swing實(shí)現(xiàn)窗體添加背景圖片的方法,并總結(jié)分析了Swing重繪中repaint與updateUI的區(qū)別,需要的朋友可以參考下2017-11-11