Mybatis中的PageHelper的執(zhí)行流程分析
PageHelper Mybatis的執(zhí)行流程

- mybatis中首先要在配置文件中配置一些東西
- 然后根據(jù)這些配置去創(chuàng)建一個(gè)會(huì)話工廠
- 再根據(jù)會(huì)話工廠創(chuàng)建會(huì)話,會(huì)話發(fā)出操作數(shù)據(jù)庫(kù)的sql語(yǔ)句
- 然后通過(guò)執(zhí)行器操作數(shù)據(jù)
- 再使用mappedStatement對(duì)數(shù)據(jù)進(jìn)行封裝
這就是整個(gè)mybatis框架的執(zhí)行情況。
插件的執(zhí)行
它主要作用在Executor執(zhí)行器與mappedeStatement之間
也就是說(shuō)mybatis可以在插件中獲得要執(zhí)行的sql語(yǔ)句
在sql語(yǔ)句中添加limit語(yǔ)句,然后再去對(duì)sql進(jìn)行封裝,從而可以實(shí)現(xiàn)分頁(yè)處理。
SpringBoot操作PageHelper
引入依賴(lài)
<!--分頁(yè)插件 pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<!-- 特別注意版本問(wèn)題 -->
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
yaml配置
#整合數(shù)據(jù)源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ok
url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#Mybatis-Plus的配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 配置在控制臺(tái)打印 sql語(yǔ)句
# 配置自定義sql語(yǔ)句的 *mapper.xml 文件位置
mapper-locations: classpath:**/mapper/**.xml
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql項(xiàng)目示例結(jié)構(gòu)

CategoryDao
因?yàn)槭褂昧薓ybatisPlus所以有些方法可以不去實(shí)現(xiàn),通過(guò)Plus自己編寫(xiě)
@Mapper
public interface CategoryDao extends BaseMapper<Category> {
}CateService接口
import cn.pojo.Category;
import java.util.*;
public interface CateService {
public List<Category> pageSelect(int page,int col);
}CateServiceImple實(shí)現(xiàn)
import javax.annotation.Resource;
import java.util.List;
@Service
public class CateServiceImple implements CateService {
@Resource
CategoryDao categoryDao;
@Override
public List<Category> pageSelect(int page, int col) {
// 使用分頁(yè)表明,從第幾頁(yè)開(kāi)始,一頁(yè)多少條數(shù)據(jù)
PageHelper.startPage(page,col);
// 使用Plus進(jìn)行查詢(xún)所有,因?yàn)镻ageHelper插件會(huì)進(jìn)行sql的limit的拼接
List<Category> categories = categoryDao.selectList(null);
return categories;
}
}核心代碼
// 使用分頁(yè)表明,從第幾頁(yè)開(kāi)始,一頁(yè)多少條數(shù)據(jù)
PageHelper.startPage(page,col);
// 使用Plus進(jìn)行查詢(xún)所有,因?yàn)镻ageHelper插件會(huì)進(jìn)行sql的limit的拼接
List<Category> categories = categoryDao.selectList(null);查看結(jié)果

到此這篇關(guān)于Mybatis的PageHelper的文章就介紹到這了,更多相關(guān)Mybatis的PageHelper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?boot2.0?實(shí)現(xiàn)日志集成的方法(3)
這篇文章主要介紹了Spring?boot2.0?實(shí)現(xiàn)日志集成的方法,基于上一篇將日志信息根據(jù)類(lèi)別輸出到不同的文件中,這篇文章將通過(guò)日志來(lái)監(jiān)控用戶(hù)的操作行為、請(qǐng)求的耗時(shí)情況,針對(duì)耗時(shí)久的請(qǐng)求進(jìn)行性能分析,提升系統(tǒng)性能,需要的小伙伴可以參考一下2022-04-04
SparkSQL使用IDEA快速入門(mén)DataFrame與DataSet的完美教程
本文給大家介紹使用idea開(kāi)發(fā)Spark SQL 的詳細(xì)過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-08-08
SpringBoot JWT接口驗(yàn)證實(shí)現(xiàn)流程詳細(xì)介紹
這篇文章主要介紹了SpringBoot+JWT實(shí)現(xiàn)接口驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-09-09
Idea如何配置Maven才能優(yōu)先從本地倉(cāng)庫(kù)獲取依賴(lài)(親測(cè)方法有效)
對(duì)于Idea怎么配置Maven才能優(yōu)先從本地倉(cāng)庫(kù)獲取依賴(lài),網(wǎng)上說(shuō)法有很多種,都不太靠譜,最終都沒(méi)有效果,最好的解決方法是通過(guò)修改maven配置文件settings.xml,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-10-10
Java子類(lèi)實(shí)例化總是默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造操作
這篇文章主要介紹了Java子類(lèi)實(shí)例化總是默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
詳解springboot采用多數(shù)據(jù)源對(duì)JdbcTemplate配置的方法
在本篇文章中我們給大家詳細(xì)分享了springboot采用多數(shù)據(jù)源對(duì)JdbcTemplate配置的方法,有需要的朋友們可以學(xué)習(xí)參考下。2018-10-10

