亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢

 更新時間:2024年05月06日 11:36:21   作者:小目標青年  
這篇文章主要介紹了Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis使用pageHelper實現(xiàn)分頁查詢

以下介紹實戰(zhàn)中數(shù)據(jù)庫框架使用的是mybatis,對整合mybatis此處不做介紹。

使用pageHelper實現(xiàn)分頁查詢其實非常簡單,共兩步:

  • 一、導入依賴
  • 二、添加配置

那么開始,

第一步

pom.xml添加依賴:

<!--分頁插件 pagehelper -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <!-- 特別注意版本問題 -->
   <version>1.2.3</version>
</dependency>

第二步

aplication.yml添加配置:

#分頁pageHelper
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  • ·helper-dialect

配置使用哪種數(shù)據(jù)庫語言,不配置的話pageHelper也會自動檢測

  • ·reasonable

配置分頁參數(shù)合理化功能,默認是false。

#啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>總頁數(shù)會查詢最后一頁;

#禁用合理化時,如果pageNum<1或pageNum>總頁數(shù)會返回空數(shù)據(jù)。

  • ·params

為了支持startPage(Object params)方法,增加了該參數(shù)來配置參數(shù)映射,用于從對象中根據(jù)屬性名取值;

可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值, 默認值為

pageNum=pageNum;pageSize=pageSize;count=countSql;
reasonable=reasonable;pageSizeZero=pageSizeZero
  • ·support-methods-arguments

支持通過Mapper接口參數(shù)來傳遞分頁參數(shù)

默認值false,分頁插件會從查詢方法的參數(shù)值中

自動根據(jù)上面 params 配置的字段中取值,查找到合適的值時就會自動分頁

第三步

先將需要查詢的數(shù)據(jù)庫表建起來,簡單填充數(shù)據(jù):

然后mapper層寫上查詢該表數(shù)據(jù)返回List的方法:

//查詢所有
List<User> queryUserInfo();

在service以及impl也寫上相關方法:

//查詢所有
List<User> queryUserInfo();
@Override
public List<User> queryUserInfo() {
 
    return userMapper.queryUserInfo();
}

相關的mapper.xml就不做過多介紹了,就是一個查詢。

ok,接下來開始使用分頁插件,配合上面的查詢實現(xiàn)分頁查詢:

在userService上添加 分頁查詢方法2個:

List<User> findAllUserByPageF(int pageNum,int pageSize);
 
PageInfo<User> findAllUserByPageS(int pageNum, int pageSize);

userServiceImpl上添加 分頁查詢實現(xiàn):

@Override
public List<User> findAllUserByPageF(int pageNum, int pageSize) {
    // TODO Auto-generated method stub
    PageHelper.startPage(pageNum, pageSize);
    List<User> lists = userMapper.queryUserInfo();
    return lists;
}
 
@Override
public PageInfo<User> findAllUserByPageS(int pageNum, int pageSize) {
    // TODO Auto-generated method stub
    PageHelper.startPage(pageNum, pageSize);
    List<User> lists = userMapper.queryUserInfo();
    PageInfo<User> pageInfo = new PageInfo<User>(lists);
    return pageInfo;
 
}

最后在controller寫上測試接口,

@GetMapping("/testPageHelper1")
public PageInfo<User> testPageHelper1(){
    PageInfo<User> queryResult = userService.findAllUserByPageS(1, 5);
    return queryResult;
}
 
@GetMapping("/testPageHelper2")
public List<User> testPageHelper2(){
    List<User> queryResult = userService.findAllUserByPageF(1, 5);
    return queryResult;
}

然后用POSTMAN 分別調(diào)接口看看結果:

最后附上分別調(diào)用10次的性能分析簡圖(來自DRUID):

OK,簡單實戰(zhàn)介紹到此。

PageInfo的參數(shù)解釋,可以看看我這篇:

http://chabaoo.cn/program/320636vi5.htm

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

最新評論