最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一般物理分頁,即通過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>

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

    Mybatis-Plus(簡稱MP)是一個(gè) Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(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實(shí)現(xiàn)

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

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

      利用 Mybtis-plus,可以輕松實(shí)現(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")
 )

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

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

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

     4 mapper 接口以及 xml    

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

UserMapper.xml 等同于編寫一個(gè)普通 list 查詢,mybatis-plus 自動(dòng)替你分頁

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

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

總結(jié)

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

相關(guān)文章

  • springboot項(xiàng)目中使用Swagger的簡單示例

    springboot項(xiàng)目中使用Swagger的簡單示例

    大趨勢(shì)下目前很多的項(xiàng)目都采用了前后端分離的方式進(jìn)行開發(fā),最近我接觸到的項(xiàng)目大多數(shù)都是采用了前后端分離的方式進(jìn)行開發(fā),下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目中使用Swagger的簡單示例,需要的朋友可以參考下
    2023-04-04
  • SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案

    SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案

    這篇文章主要介紹了SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Java的synchronized關(guān)鍵字深入解析

    Java的synchronized關(guān)鍵字深入解析

    這篇文章主要介紹了Java的synchronized關(guān)鍵字深入解析,在并發(fā)編程中,多線程同時(shí)并發(fā)訪問的資源叫做臨界資源,當(dāng)多個(gè)線程同時(shí)訪問對(duì)象并要求操作相同資源時(shí),分割了原子操作就有可能出現(xiàn)數(shù)據(jù)的不一致或數(shù)據(jù)不完整的情況,需要的朋友可以參考下
    2023-12-12
  • Java打包之后讀取Resources下的文件失效原因及解決方法

    Java打包之后讀取Resources下的文件失效原因及解決方法

    這篇文章主要給大家介紹了Java打包之后讀取Resources下的文件失效的問題分析和解決方法,文中通過代碼示例和圖文結(jié)合給大家講解非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • SpringBoot項(xiàng)目jar和war打包部署方式詳解

    SpringBoot項(xiàng)目jar和war打包部署方式詳解

    這篇文章主要為大家介紹了SpringBoot項(xiàng)目jar和war打包部署方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • JSON中fastjson、jackson、gson如何選擇

    JSON中fastjson、jackson、gson如何選擇

    在Java中,JSON的解析方式很多,例如fastjson(阿里)、Gson(谷歌)、jackjson等,本文主要介紹了JSON中fastjson、jackson、gson如何選擇,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • IntelliJ-Idea導(dǎo)出可執(zhí)行Jar流程解析

    IntelliJ-Idea導(dǎo)出可執(zhí)行Jar流程解析

    這篇文章主要介紹了IntelliJ-Idea導(dǎo)出可執(zhí)行Jar流程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot中shiro過濾器的重寫與配置詳解

    SpringBoot中shiro過濾器的重寫與配置詳解

    在前后端分離跨域訪問的項(xiàng)目中shiro進(jìn)行權(quán)限攔截失效 (即使有正確權(quán)限的訪問也會(huì)被攔截) 時(shí)造成302重定向錯(cuò)誤等問題,為解決這個(gè)問題,就需要進(jìn)行shiro過濾器的重寫以及配置。本文詳細(xì)介紹了解決方法,需要的可以參考一下
    2022-04-04
  • Mybatis逆向工程時(shí)失敗問題及解決

    Mybatis逆向工程時(shí)失敗問題及解決

    這篇文章主要介紹了Mybatis逆向工程時(shí)失敗問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Myeclipse部署Tomcat_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Myeclipse部署Tomcat_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章給大家介紹了Myeclipse部署Tomcat的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-07-07

最新評(píng)論

潜山县| 离岛区| 林西县| 明溪县| 昌邑市| 兴山县| 旬阳县| 永丰县| 余江县| 新巴尔虎右旗| 南华县| 湄潭县| 濉溪县| 深水埗区| 弥勒县| 新邵县| 房产| 遂溪县| 金寨县| 永仁县| 泊头市| 夏邑县| 淳化县| 会宁县| 万宁市| 高雄县| 化州市| 揭西县| 神木县| 通渭县| 洞口县| 鱼台县| 淄博市| 满洲里市| 正定县| 庆城县| 定远县| 闻喜县| 周至县| 安远县| 灯塔市|