激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产视频精品在线 | 宅男噜噜噜66国产免费观看 | 欧美性生交大片 | 国产精品视频导航 | 久久男人天堂 | 免费看黄色一级大片 | 黄免费在线观看 | 欧美黄色试片 | 成年人高清视频在线观看 | 港台三级在线观看 | 成人免费一区二区三区在线观看 | 国产精品久久久久久久久久久久久久久 | 一级国产免费 | 香蕉成人在线观看 | 久久久久免费精品国产小说色大师 | 日韩黄色片在线观看 | av成人免费看| 色的综合 | 永久免费av片在线观看全网站 | 精品一区二区中文字幕 | av电影在线免费 | 爱逼av | 黄色片网站在线看 | 国产欧美精品综合一区 | 一级一级一级一级毛片 | 国产黄色网| 91网站链接| 色中色在线播放 | 99在线热播精品免费 | 亚洲欧美在线视频免费 | 久久免费视频8 | 亚洲成人午夜精品 | 国内毛片视频 | 91成人影院 | 久久精品操 | 91网站在线观看视频 | 欧美 日韩 国产 在线 | 欧美成人影院 | 国产免费一级淫片a级中文 99国产精品自拍 | 日韩黄色片在线观看 | 精品一区二区三区网站 |