一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Mybatis-Plus 多表聯查分頁的實現代碼

Mybatis-Plus 多表聯查分頁的實現代碼

2021-05-07 13:32殷天文 Java教程

本篇文章主要介紹了Mybatis-Plus 多表聯查分頁的實現代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

上一節,簡單講述了 mybatis-plus 搭建與使用入門,這一節,簡單講一下如何使用 mp 實現多表分頁。

分析

使用的工程,依舊是 spring-boot,關于分頁,官網給出了一個單表的demo,其實多表分頁實現原理相同,都是通過 mybatis 的攔截器

(攔截器做了什么?他會在你的 sql 執行之前,為你做一些事情,例如分頁,我們使用了 mp 不用關心 limit,攔截器為我們拼接。我們也不用關心總條數,攔截器獲取到我們 sql 后,拼接 select count(*) 為我們查詢總條數,添加到參數對象中)。

實現

1. 配置攔截器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@enabletransactionmanagement
@configuration
@mapperscan("com.web.member.mapper")
public class mybatisplusconfig {
  /**
   * mybatis-plus sql執行效率插件【生產環境可以關閉】
   */
  @bean
  public performanceinterceptor performanceinterceptor() {
    return new performanceinterceptor();
  }
 
  /*
   * 分頁插件,自動識別數據庫類型 多租戶,請參考官網【插件擴展】
   */
  @bean
  public paginationinterceptor paginationinterceptor() {
    return new paginationinterceptor();
  }
}

2. mapper 接口以及 xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * <p>
 * 用戶表 mapper 接口
 * </p>
 *
 * @author 殷天文
 * @since 2018-06-01
 */
public interface usermapper extends basemapper<user> {
 
  list<userlistmodel> selectuserlistpage(pagination page ,@param("user") userlistbean user);
  
}

這里要注意的是,這個 pagination page 是必須要有的,否則 mp 無法為你實現分頁。

?
1
2
3
4
5
6
7
8
9
10
11
<select id="selectuserlistpage" resulttype="com.web.member.model.userlistmodel">
  select
    *
  from
    ftms_user u
  left join ftms_user_level l on u.level_id = l.id
  where 1=1
    <if test="user.nickname != null">
      and u.nickname like "%"#{user.nickname}"%"
    </if>
</select>

3. service 實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import com.web.member.beans.admin.userlistbean;
import com.web.member.entity.user;
import com.web.member.mapper.usermapper;
import com.web.member.model.userlistmodel;
import com.web.member.service.userservice;
import com.baomidou.mybatisplus.plugins.page;
import com.baomidou.mybatisplus.service.impl.serviceimpl;
 
import org.springframework.stereotype.service;
import org.springframework.transaction.annotation.transactional;
 
/**
 * <p>
 * 用戶表 服務實現類
 * </p>
 *
 * @author 殷天文
 * @since 2018-06-01
 */
@service
public class userserviceimpl extends serviceimpl<usermapper, user> implements userservice {
 
  @transactional(readonly=true)
  @override
  public page<userlistmodel> selectuserlistpage(userlistbean user) {
    page<userlistmodel> page = new page<>(user.getcurr(), user.getnums());// 當前頁,總條數 構造 page 對象
    return page.setrecords(this.basemapper.selectuserlistpage(page, user));
  }
  
}

最后將結果集 set 到 page 對象中,page 對象的 json 結構如下

?
1
2
3
4
5
6
7
8
9
10
11
12
{
  "total": 48,//總記錄
  "size": 10,//每頁顯示多少條
  "current": 1,//當前頁
  "records": [//結果集 數組
    {...},
    {...},
    {...},
     ...
  ],
  "pages": 5 // 總頁數
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.jianshu.com/p/759b6430ed5b

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎成人免费观看在线网址 | 母性本能在线观看 | 91短视频在线免费观看 | 亚洲欧美精品久久 | 四虎网站最新网址 | 九九99精品 | 99精品久久精品一区二区小说 | 奇米影视99| 波多野结衣xxxxx在线播放 | 日本不卡不码高清免费观看 | 久久人妻少妇嫩草AV无码 | 毛片资源 | 国产成人精品一区二三区在线观看 | 免费观看www视频 | 久久精品国产色蜜蜜麻豆国语版 | 我与肥熟老妇的性事 | 亚洲精品久久久打桩机 | 4虎影视国产在线观看精品 4s4s4s4s色大众影视 | 沉香如屑西瓜视频免费观看完整版 | 午夜日本大胆裸艺术 | 女黑人尺寸bbb | 色老板在线免费观看 | 日本一道一区二区免费看 | 百合漫画咱啪全彩抚慰 | 丝瓜视频看污片 | a级免费在线观看 | 高清色黄毛片一级毛片 | 4455永久在线视频观看 | 国产福利一区二区在线精品 | 国产免费视频 | 午夜办公室在线观看高清电影 | 日韩国产欧美一区二区三区 | 亚洲六月丁香婷婷综合 | 美日韩在线观看 | 91九色麻豆 | 久久精品国产视频澳门 | 国产精品香蕉 | 91香蕉国产 | 2022色婷婷综合久久久 | 国产免费看视频 | 欧美在线视频 一区二区 |