摘要:說(shuō)起,使用過(guò)的朋友可能不是很陌生,作為一款國(guó)人開(kāi)發(fā)的分頁(yè)插件,它基本上滿(mǎn)足了我們的日常需求。一般用不著默認(rèn)值為,是否進(jìn)行查詢(xún)一般用不著和配合使用,具體可以看下面的講解默認(rèn)值為。
PageHelper
說(shuō)起PageHelper,使用過(guò)Mybatis的朋友可能不是很陌生,作為一款國(guó)人開(kāi)發(fā)的分頁(yè)插件,它基本上滿(mǎn)足了我們的日常需求。但是,我想去官方文檔看看這個(gè)東西配合Spring Boot進(jìn)行使用的時(shí)候,發(fā)現(xiàn)了這個(gè):
所以花了一個(gè)晚上的時(shí)間,研究了一下合理的怎么玩這個(gè)。
快速入門(mén)如果你想在一個(gè)Spring Boot項(xiàng)目中快速進(jìn)行一次分頁(yè)操作,只需要兩步即可:
導(dǎo)入Maven這里我導(dǎo)入的是官方最新的:
使用org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 tk.mybatis mapper-spring-boot-starter 2.1.5 com.github.pagehelper pagehelper-spring-boot-starter 1.2.10
// 只有緊跟在PageHelper.startPage方法后的第一個(gè)Mybatis的查詢(xún)(Select)方法會(huì)被分頁(yè)!!!! PageHelper.startPage(1, 10); return PageInfo.of(userService.findAll());
沒(méi)錯(cuò),只需要兩句代碼即可達(dá)到我們想要的分頁(yè)效果
進(jìn)階玩法如果,你僅僅是想簡(jiǎn)單的使用分頁(yè)功能,那么這篇文章到這里對(duì)你而言來(lái)說(shuō)就已經(jīng)結(jié)束了,但是作為一個(gè)程序員,你會(huì)僅僅滿(mǎn)足于初級(jí)的玩兒法嗎?不!你不會(huì)!所以,接著往下看~
從文檔中,我們可以看出,作者給我們提供了很多的參數(shù)供我們配置:
helperDialect,offsetAsPageNum,rowBoundsWithCount,pageSizeZero,reasonable,params,supportMethodsArguments,autoRuntimeDialect,closeConn等等,我們可以通過(guò)配置這些屬性來(lái)獲得更為強(qiáng)大的效果~
這里需要說(shuō)明一點(diǎn),網(wǎng)上的教程大部分是讓我們?cè)趚ml或者代碼中配置,其實(shí)如果你使用的是springboot,干嘛要舍近求遠(yuǎn)呢,我們可以直接在Spring boot 的配置文件application.yml中進(jìn)行配置:
pagehelper: # dialect: ① # 分頁(yè)插件會(huì)自動(dòng)檢測(cè)當(dāng)前的數(shù)據(jù)庫(kù)鏈接,自動(dòng)選擇合適的分頁(yè)方式(可以不設(shè)置) helper-dialect: mysql # 上面數(shù)據(jù)庫(kù)設(shè)置后,下面的設(shè)置為true不會(huì)改變上面的結(jié)果(默認(rèn)為true) auto-dialect: true page-size-zero: false # ② reasonable: true # ③ # 默認(rèn)值為 false,該參數(shù)對(duì)使用 RowBounds 作為分頁(yè)參數(shù)時(shí)有效。(一般用不著) offset-as-page-num: false # 默認(rèn)值為 false,RowBounds是否進(jìn)行count查詢(xún)(一般用不著) row-bounds-with-count: false #params: ④ #support-methods-arguments: 和params配合使用,具體可以看下面的講解 # 默認(rèn)值為 false。設(shè)置為 true 時(shí),允許在運(yùn)行時(shí)根據(jù)多數(shù)據(jù)源自動(dòng)識(shí)別對(duì)應(yīng)方言的分頁(yè) auto-runtime-dialect: false # ⑤ # 與auto-runtime-dialect配合使用 close-conn: true # 用于控制默認(rèn)不帶 count 查詢(xún)的方法中,是否執(zhí)行 count 查詢(xún),這里設(shè)置為true后,total會(huì)為-1 default-count: false #dialect-alias: ⑥
①:默認(rèn)情況下會(huì)使用 PageHelper 方式進(jìn)行分頁(yè),如果想要實(shí)現(xiàn)自己的分頁(yè)邏輯,可以實(shí)現(xiàn) Dialect(com.github.pagehelper.Dialect) 接口,然后配置該屬性為實(shí)現(xiàn)類(lèi)的全限定名稱(chēng)。(這里不推薦這樣玩,畢竟你用了別人的插件,干嘛還要多此一舉呢?)
②:默認(rèn)值為 false,當(dāng)該參數(shù)設(shè)置為 true 時(shí),如果 pageSize=0 或者 RowBounds.limit = 0 就會(huì)查詢(xún)出全部的結(jié)果(相當(dāng)于沒(méi)有執(zhí)行分頁(yè)查詢(xún),但是返回結(jié)果仍然是 Page 類(lèi)型)。
這里需要說(shuō)一點(diǎn),雖然返回了全部的結(jié)果,但是還是執(zhí)行了count的動(dòng)作,開(kāi)發(fā)者曾在issue中表示后面的版本會(huì)修復(fù)這個(gè)問(wèn)題
經(jīng)我的測(cè)試,目前是還沒(méi)有解決的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75941.html
摘要:如要運(yùn)行多次,請(qǐng)把上次生成的映射文件代碼刪除再運(yùn)行。層啟動(dòng)類(lèi)掃描接口,必須加上提一嘴,這個(gè)注解非常的關(guān)鍵,這個(gè)對(duì)應(yīng)了項(xiàng)目中所對(duì)應(yīng)的包路徑,必須加上,否則會(huì)導(dǎo)致異常。另外,關(guān)注之后在發(fā)送可領(lǐng)取免費(fèi)學(xué)習(xí)資料。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 如題,今天介紹 SpringBoot 與 Mybatis 的整合以及 Mybatis 的使用,之前...
摘要:通過(guò)配置文件通過(guò)配置導(dǎo)入指定的使用的方式屬性的同學(xué)也可以通過(guò)配置通過(guò)配置先配置文件使用的方式再配置注意中對(duì)象需要添加托管給方能正常使用。建議與任選其一,建議使用通過(guò)注解的方式使用,當(dāng)然如果習(xí)慣配置的方式也可以使用。 導(dǎo)讀: 在上篇文章中我們介紹了spring-data-jpa的一些常用方法,在這篇文章中我們?cè)诮榻B關(guān)于mybatis與Spring Boot 的集成,及一些常用方法 集成:...
摘要:介紹本文在參考了如何優(yōu)雅的在上部署的基礎(chǔ)下使用整合部署在服務(wù)器上。在中可以右擊將項(xiàng)目打成包部署測(cè)試在上部署應(yīng)用可以參考部署項(xiàng)目包??偨Y(jié)到這里我們已經(jīng)成功將和整合并部署到上。 介紹 本文在參考了如何優(yōu)雅的在weblogic上部署spring-boot的基礎(chǔ)下使用springboot整合Mybatis部署在weblogic服務(wù)器上。 環(huán)境 開(kāi)發(fā)工具:Eclipseweblogic版本:1...
閱讀 2741·2021-11-22 15:22
閱讀 1653·2021-11-22 14:56
閱讀 3629·2021-09-22 15:12
閱讀 2415·2021-09-02 15:41
閱讀 2139·2021-08-27 16:26
閱讀 1126·2019-08-30 15:55
閱讀 2151·2019-08-29 17:30
閱讀 679·2019-08-29 16:26