欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis Plus 自定義方法實現(xiàn)分頁功能的示例代碼

 更新時間:2020年08月28日 10:09:23   作者:awesome_go  
這篇文章主要介紹了Mybatis Plus 自定義方法實現(xiàn)分頁功能的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一般物理分頁,即通過sql語句分頁,都是在sql語句后面添加limit分頁語句,在xml文件里傳入分頁的參數(shù),再多配置一條sql,用于查詢總數(shù):

<select id="queryStudentsBySql" parameterType="map" resultMap="studentmapper">    
     select * from student limit #{currIndex} , #{pageSize}   
   </select>
   <select id="queryStudentsCount" resultType="java.lang.Integer" parameterType="java.util.Map">    
    select count(*) from student   
   </select>

     這樣可以實現(xiàn)分頁,但是每條sql都這樣寫,很冗余,而且不好維護,所以高級一點的方式就是自定義的一個攔截器,攔截所有需要分頁的查詢語句,并且利用獲取到的分頁相關參數(shù)統(tǒng)一在sql語句后面加上limit分頁的相關語句,一勞永逸,不需要再每條語句都配置一下,攔截器具體怎么實現(xiàn)不說了,因為Mybatis Plus 已經(jīng)有類似這樣一個攔截器的分頁插件,利用這個分頁插件,不需要自己寫攔截器就可以輕松實現(xiàn)分頁查詢: 

    Mybatis-Plus(簡稱MP)是一個 Mybatis 的增強工具,在 Mybatis 的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生。

       1、 添加Mybatis-plus

<dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>2.1.8</version>
    </dependency>

       2、配置攔截器

import com.baomidou.mybatisplus.plugins.PaginationInterceptor;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;
  /**   
  * mybatis-plus配置   
  *   
  */  
  @Configuration  
  public class MybatisPlusConfig {
    /**     
    * 分頁插件     
    */    
    @Bean    
    public PaginationInterceptor paginationInterceptor() {       
      PaginationInterceptor page = new PaginationInterceptor();       
      page.setDialectType("mysql");       
      return page;    
    }  
  }

    3、service實現(xiàn)

      傳統(tǒng)的查詢方式:

 SELECT *
  FROM sys_user
  WHERE (name='張三' AND sex=0 AND age BETWEEN '18' AND '50')
  LIMIT 0,10

      利用 Mybtis-plus,可以輕松實現(xiàn)分頁查詢

// 分頁查詢 10 條姓名為‘張三'、性別為男,且年齡在18至50之間的用戶記錄  
 List<User> userList = userMapper.selectPage(
    new Page<User>(1, 10),
    new EntityWrapper<User>().eq("name", "張三")
        .eq("sex", 0)
        .between("age", "18", "50")
 )

     以上是單表查詢的分頁實現(xiàn),多表查詢,或者比較復雜的查詢語句也可以輕松實現(xiàn):

 public Page<User> selectUserPage(Page<User> page, Integer state) {
    // 不進行 count sql 優(yōu)化,解決 MP 無法自動優(yōu)化 SQL 問題
    // page.setOptimizeCountSql(false);
    // 不查詢總記錄數(shù)
    // page.setSearchCount(false);
    // 注意?。?分頁 total 是經(jīng)過插件自動 回寫 到傳入 page 對象
    return page.setRecords(userMapper.selectUserList(page, state));
  }

    注意:需要根據(jù)前端傳來的分頁參數(shù),當前第幾頁,每頁多少條,構造一個page 對象,初始化這些參數(shù),將page對象傳遞給mapper,攔截器會自動在sql語句加上limit查詢,自動查詢總記錄數(shù)并寫回page對象。

     4 mapper 接口以及 xml    

 public interface UserMapper{//可以繼承或者不繼承BaseMapper
  /**
   * <p>
   * 查詢 : 根據(jù)state狀態(tài)查詢用戶列表,分頁顯示
   * </p>
   *
   * @param page
   *      翻頁對象,可以作為 xml 參數(shù)直接使用,傳遞參數(shù) Page 即自動分頁
   * @param state
   *      狀態(tài)
   * @return
   */
  List<User> selectUserList(Pagination page, Integer state);
}

UserMapper.xml 等同于編寫一個普通 list 查詢,mybatis-plus 自動替你分頁

 <select id="selectUserList" resultType="User">
    SELECT * FROM user WHERE state=#{state}
  </select>

    注意:一定要傳遞page參數(shù),否則不能實現(xiàn)分頁,查詢sql 可以是多表聯(lián)合查詢的復雜語句。

總結

到此這篇關于Mybatis Plus 自定義方法實現(xiàn)分頁功能的示例代碼的文章就介紹到這了,更多相關Mybatis Plus 自定義分頁內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Springboot中的@ComponentScan注解使用解析

    Springboot中的@ComponentScan注解使用解析

    這篇文章主要介紹了Springboot中的@ComponentScan注解使用解析,@ComponentScan用于類或接口上主要是指定掃描路徑,spring會把指定路徑下帶有指定注解的類注冊到IOC容器中,需要的朋友可以參考下
    2024-01-01
  • 基于maven中多個子模塊的構建順序

    基于maven中多個子模塊的構建順序

    這篇文章主要介紹了maven中多個子模塊的構建順序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中BM(Boyer-Moore)算法的圖解與實現(xiàn)

    Java中BM(Boyer-Moore)算法的圖解與實現(xiàn)

    本文主要介紹了兩個大的部分,第一部分通過圖解的方式講解BM算法,第二部分則代碼實現(xiàn)一個簡易的BM算法,感興趣的小伙伴可以學習一下
    2022-05-05
  • java異步執(zhí)行代碼處理方法(先返回結果,后執(zhí)行代碼)

    java異步執(zhí)行代碼處理方法(先返回結果,后執(zhí)行代碼)

    這篇文章主要給大家介紹了關于java異步執(zhí)行代碼處理方法的相關資料,先返回結果,后執(zhí)行代碼,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 關于springcloud集成nacos遇到的問題

    關于springcloud集成nacos遇到的問題

    這篇文章主要介紹了關于springcloud集成nacos遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring Boot集成LangChain來實現(xiàn)Rag應用的問題小結

    Spring Boot集成LangChain來實現(xiàn)Rag應用的問題小結

    檢索增強生成(RAG)是一種優(yōu)化大型語言模型(LLM)輸出的技術,通過引用權威知識庫以增強模型的準確性和相關性,RAG允許LLM在不重新訓練的情況下訪問特定領域的知識,提高了其在各種應用中的實用性和信任度,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • java spring整合junit操作(有詳細的分析過程)

    java spring整合junit操作(有詳細的分析過程)

    這篇文章主要介紹了java spring整合junit操作(有詳細的分析過程),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • idea中將單個java類導出為jar包文件的方法

    idea中將單個java類導出為jar包文件的方法

    這篇文章主要給大家介紹了關于idea中將單個java類導出為jar包文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • java中文傳值亂碼問題的解決方法

    java中文傳值亂碼問題的解決方法

    這篇文章主要為大家詳細介紹了java中文傳值亂碼問題的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Struts2實現(xiàn)文件上傳功能實例解析

    Struts2實現(xiàn)文件上傳功能實例解析

    這篇文章主要介紹了Struts2實現(xiàn)文件上傳功能實例解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01

最新評論