MyBatis-Plus-Join关联查询

简介: MyBatis-Plus-Join关联查询
  1. 引入依赖
<dependency>
      <groupId>com.github.yulichang</groupId>
      <artifactId>mybatis-plus-join-boot-starter</artifactId>
      <version>1.4.6</version>
</dependency>

2.关联查询

baseMapper.selectJoinPage(page, StoreEntity.class, new MPJLambdaWrapper<StoreEntity>()
                .selectAll(StoreEntity.class)
                .select(DealerEntity::getDealerName)
                .leftJoin(DealerEntity.class, DealerEntity::getId, StoreEntity::getDistributorId)
                .eq(store.getStatus() != null, StoreEntity::getStatus, store.getStatus()));

说明:

  • StoreEntity.class是最终返回的DTO
  • new MPJLambdaWrapper()中的StoreEntity是主表查询的实体类
  • .selectAll(StoreEntity.class)是查询主表的全部字段
  • .select(DealerEntity::getDealerName)是查询字表的dealerName字段
  • .leftJoin(DealerEntity.class, DealerEntity::getId, StoreEntity::getDistributorId)是表关联,DealerEntity.class是字表实体类,DealerEntity::getId关联字表的字段,StoreEntity::getDistributorId关联主表的字段
  • .eq(store.getStatus() != null, StoreEntity::getStatus, store.getStatus())这个就是其他的条件查询啦,跟MP是一样的

以上执行SQL打印

select t.id,
       t.store_code,
       t.store_name,
       t.distributor_id,
       t.status,
       t.contact_person,
       t.contact_phone,
       t.store_location,
       t.position_lon,
       t.position_lat,
       t.create_by,
       t.create_time,
       t.update_by,
       t.update_time,
       t.dept_id,
       t.tenant_id,
       t.del_flag,
       # 这个是字表的字段
       t1.dealer_name
from tb_store t
         left join tb_dealer t1 on t1.id = t.distributor_id and t1.tenant_id = 1
where t.del_flag = '0'
  and t1.del_flag = '0'
  and t.tenant_id = 1
limit 10

跟写关联查询的sql是一样的

相关文章
|
11月前
|
SQL XML Java
MyBatis Mapper中使用limit参数的查询问题
总结而言,MyBatis中使用 `limit`参数的查询可以高度定制并且灵活,基于方法签名和XML映射文件的组合来达成多样化的查询需求。通过参数化查询和动态SQL,MyBatis可以有效地处理各种复杂情境下的数据库操作,并且将SQL语句的维护与业务代码的编写相分离,提升代码的可维护性和可阅读性。
832 13
|
Java 数据库连接 数据库
mybatis查询数据,返回的对象少了一个字段
mybatis查询数据,返回的对象少了一个字段
1380 9
|
12月前
|
SQL Java 数据库
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
664 1
|
Java 数据库连接 mybatis
Mybatis查询传递单个参数和传递多个参数用法
Mybatis查询传递单个参数和传递多个参数用法
715 166
|
SQL Java 关系型数据库
Mybatis多表关联查询与动态SQL(下)
Mybatis多表关联查询与动态SQL
431 0
|
SQL Java 数据库连接
Mybatis多表关联查询与动态SQL(上)
Mybatis多表关联查询与动态SQL
544 0
|
SQL 缓存 Java
mybatis 一对多查询
mybatis 一对多查询
538 0
|
XML Java 数据库连接
Mybatis一对一,一对多关联查询
## MyBatis一对一、一对多关联查询详解 MyBatis是一款优秀的持久层框架,提供了灵活的SQL映射功能,支持复杂的数据库操作。本文将详细介绍MyBatis中一对一和一对多关联查询的实现。 ### 一对一关联查询 一对一关联关系指的是一个表中的一条记录与另一个表中的一条记录相关联。例如,一个用户有一个地址信息。 #### 数据库表设计 假设有两个表:`user`和 `address`。 ``` CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE address
578 18
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
1964 6
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
626 2
MyBatis-Plus条件构造器:构建安全、高效的数据库查询