首頁 > 軟體

Mybatis中的PageHelper的執行流程分析

2022-02-28 13:03:31

PageHelper Mybatis的執行流程

  • mybatis中首先要在組態檔中設定一些東西
  • 然後根據這些設定去建立一個對談工廠
  • 再根據對談工廠建立對談,對談發出運算元據庫的sql語句
  • 然後通過執行器運算元據
  • 再使用mappedStatement對資料進行封裝

這就是整個mybatis框架的執行情況。

外掛的執行

它主要作用在Executor執行器與mappedeStatement之間

也就是說mybatis可以在外掛中獲得要執行的sql語句

在sql語句中新增limit語句,然後再去對sql進行封裝,從而可以實現分頁處理。

SpringBoot操作PageHelper

引入依賴

 <!--分頁外掛 pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <!-- 特別注意版本問題 -->
            <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設定

#整合資料來源
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 # 設定在控制檯列印 sql語句
  # 設定自定義sql語句的 *mapper.xml 檔案位置
  mapper-locations: classpath:**/mapper/**.xml
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

專案範例結構

CategoryDao

因為使用了MybatisPlus所以有些方法可以不去實現,通過Plus自己編寫

@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實現

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) {
//        使用分頁表明,從第幾頁開始,一頁多少條資料
        PageHelper.startPage(page,col);
		
//        使用Plus進行查詢所有,因為PageHelper外掛會進行sql的limit的拼接
        List<Category> categories = categoryDao.selectList(null);

        return categories;
    }
}

核心程式碼

//        使用分頁表明,從第幾頁開始,一頁多少條資料
        PageHelper.startPage(page,col);
//        使用Plus進行查詢所有,因為PageHelper外掛會進行sql的limit的拼接
        List<Category> categories = categoryDao.selectList(null);

檢視結果

到此這篇關於Mybatis的PageHelper的文章就介紹到這了,更多相關Mybatis的PageHelper內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com