成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術文章
文章詳情頁

Mybatis Plus 自定義方法實現分頁功能的示例代碼

瀏覽:122日期:2023-10-23 07:39:39

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

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

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

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

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 { /** * 分頁插件 */@Beanpublic PaginationInterceptor paginationInterceptor() { PaginationInterceptor page = new PaginationInterceptor(); page.setDialectType('mysql'); return page;} }

3、service實現

傳統的查詢方式:

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

利用 Mybtis-plus,可以輕松實現分頁查詢

// 分頁查詢 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') )

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

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

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

4 mapper 接口以及 xml

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

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

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

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

總結

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

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 国语自产拍天天在线 | 草草在线免费视频 | 在线久 | 精品在线视频播放 | 亚洲高清国产一线久久 | caoporen个人免费公开视频 | 亚洲成aⅴ人片在线观 | 99视频一区 | 欧美一二三 | 曰本女同互慰高清在线观看 | 欧美精品另类 | 亚洲欧美国产一区二区三区 | 在线视频免费观看a毛片 | 未满14周岁啪啪网站 | 欧美在线一区二区三区精品 | 国产精品亚洲精品 | 性欧美欧美巨大69 | 成人精品视频一区二区在线 | 亚洲网在线观看 | 亚洲欧美日韩在线播放 | 丝袜黄色片 | 久草福利资源网站免费 | 美女三级毛片 | 日本a一级片 | 在线观看一区 | 亚洲成人偷拍自拍 | 久草免费手机视频 | 毛片免费观看的视频在线 | 外国三级毛片 | 男人扒开腿躁女人j | 女人张开腿给男人桶爽免费 | 三级网站免费观看 | 国产一区二区在线看 | 欧美日韩一级片在线观看 | 成人国产网站 | 日本一区三区二区三区四区 | 精品丝袜国产自在线拍亚洲 | 成人国产精品一级毛片天堂 | 亚洲欧美卡通成人制服动漫 | 黄在线看| 亚洲综合国产一区在线 |