您好,登錄后才能下訂單哦!
小編給大家分享一下Mybatis分頁查詢怎么實現(xiàn),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們實現(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í)一下一個
@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)是查詢的所有的,所以它實際上是邏輯分頁,也就是說把結(jié)果全部查詢除了然后進(jìn)行按游標(biāo)分頁。
物理分頁:物理分頁就是數(shù)據(jù)庫本身提供了分頁方式,如MySQL的limit,oracle的rownum ,好處是效率高,不好的地方就是不同數(shù)據(jù)庫有不同的搞法
邏輯分頁:利用游標(biāo)分頁,好處是所有數(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>
在進(jìn)行失去了查詢之前使用方法:
PageHelper.startPage(pageNum,pageSize);
查詢結(jié)果
可以發(fā)現(xiàn)我們的PageHelper用到的是PreparedStatement進(jìn)行的物理分頁查詢。
以上是“Mybatis分頁查詢怎么實現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。