MyBatis-Plus连表查询

MyBatis-Plus连表查询

PIGCLOUD

📄 MyBatis-Plus连表查询 _ PIGCLOUD

](https://www.pig4cloud.com/)

产品

商业版

生态🔥

📄 MyBatis-Plus连表查询

pigcloud

MyBatis-Plus-Join(简称 MPJ)是一个 MyBatis-Plus 的增强工具,它在 MyBatis-Plus 的基础上提供增强功能,以简化开发并提高效率。

  • 无侵入:引入 MPJ 不会对现有工程产生影响,只提供增强功能,顺畅无缝
  • 无感引入:支持 MP 风格的查询,无需额外学习成本
  • 兼容 MP 的别名、逻辑删除、枚举列、TypeHandle 等特性
  • 支持注解形式的一对一、一对多和连表查询

# 连表查询

以 APP 模块的用户文章收藏表 app_article_collect 和文章表 app_article 为例,查询用户收藏列表时,需要关联显示对应的文章标题。

# ① 表结构如下

# ② 连表查询如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Operation(summary = "分页查询", description = "分页查询")
@GetMapping("/page")
public R getAppArticleCollectPage(@ParameterObject Page page) {
MPJLambdaWrapper<AppArticleCollectEntity> wrapper = new MPJLambdaWrapper<AppArticleCollectEntity>()
.selectAll(AppArticleCollectEntity.class)
.select(AppArticleEntity::getTitle)
.leftJoin(AppArticleEntity.class, AppArticleEntity::getId, AppArticleCollectEntity::getArticleId)
.eq(AppArticleCollectEntity::getUserId, SecurityUtils.getUser().getId());
return R.ok(appArticleCollectService.selectJoinListPage(page, AppArticleCollectEntity.class, wrapper));
}




Copied!
  • 自动生成 SQL,实际执行的 SQL 如下
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
SELECT
t.id,
t.user_id,
t.article_id,
t.create_by,
t.create_time,
t.update_by,
t.update_time,
t.del_flag,
t1.title
FROM
app_article_collect t
LEFT JOIN app_article t1 ON t1.id = t.article_id
AND t1.tenant_id = 1
WHERE
t.del_flag = '0'
AND t1.del_flag = '0'
AND ( t.user_id = 1 )
AND t.tenant_id = 1
LIMIT 10




Copied!

# 进阶使用

请参考mybatisplusjoin 官方文档 (opens new window)

📄 Druid 分布式 SQL 监控使用 📄 使用PostgreSQL数据库

  • 标题: MyBatis-Plus连表查询
  • 作者: PIGCLOUD
  • 创建于 : 2024-01-01 00:00:00
  • 更新于 : 2025-09-22 14:27:28
  • 链接: https://anime-blog.52lin.site/📄 MyBatis-Plus连表查询 _ PIGCLOUD/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。