首页 > 其他分享 >MyBatis-Plus多表联查

MyBatis-Plus多表联查

时间:2024-06-07 09:21:51浏览次数:21  
标签:ChatRecord 多表 t2 getId t1 MyBatis 联查 id select

一、引依赖

注意: mybatis plus version >= 3.4.0

<dependency>
    <groupId>com.github.yulichang</groupId>
    <artifactId>mybatis-plus-join</artifactId>
    <version>1.2.4</version>
</dependency>

 

二、使用方法

mapper继承MPJBaseMapper (必选)
service继承MPJBaseService (可选)
serviceImpl继承MPJBaseServiceImpl (可选)

 

三、(实战)多表查询

MPJLambdaWrapper<Map> mpjLambdaWrapper = new MPJLambdaWrapper();
mpjLambdaWrapper.select(ChatRecord::getId,ChatRecord::getRedMoney)
    .select(OfShopMembers::getUsablePoint)
    .select(ChatMultiList::getName)
    .leftJoin(OfShopMembers.class,OfShopMembers::getId,ChatRecord::getId)
    .leftJoin(ChatMultiList.class,ChatMultiList::getId,ChatRecord::getMultiId)
    .eq(ChatRecord::getMemberId,3213);
List list = chatRecordMybatisJoinMapper.selectJoinList(Map.class, mpjLambdaWrapper);

 

对应查询语句

SELECT 
    t.id,
    t.red_money,
    t1.username,
    t2.name 
FROM 
    chat_record t 
LEFT JOIN of_shop_members t1 ON (t1.id = t.id) 
LEFT JOIN chat_multi_list t2 ON (t2.id = t.multi_id) 
WHERE 
    (t.member_id = 3213)

 

参数说明
1、select:表示查询的指定字段,一个select只能查一个表的
2、leftJoin:
第一个参数: 参与连表的实体类class
第二个参数: 连表的ON字段,这个属性必须是第一个参数实体类的属性
第三个参数: 参与连表的ON的另一个实体类属性
3、默认主表别名是t,其他的表别名以先后调用的顺序使用t1,t2,t3…

四、(实战)多表分页查询

MPJLambdaWrapper<Map> mpjLambdaWrapper = new MPJLambdaWrapper();
        mpjLambdaWrapper.select(ChatRecord::getId,ChatRecord::getRedMoney)
            .select(OfShopMembers::getUsablePoint)
            .select(ChatMultiList::getName)
            .leftJoin(OfShopMembers.class,OfShopMembers::getId,ChatRecord::getId)
            .leftJoin(ChatMultiList.class,ChatMultiList::getId,ChatRecord::getMultiId)
            .eq(ChatRecord::getMemberId,3213)
            .orderByDesc(ChatRecord::getAddTime);
        Page page = new Page(1,2);
        IPage<Map> mapIPage = chatRecordMybatisJoinMapper.selectJoinPage(page, Map.class, mpjLambdaWrapper);

 

对应查询语句

SELECT 
    t.id,
    t.red_money,
    t1.usable_point,
    t2.name 
FROM 
    chat_record t 
LEFT JOIN of_shop_members t1 ON (t1.id = t.id) 
LEFT JOIN chat_multi_list t2 ON (t2.id = t.multi_id)
WHERE 
    (t.member_id = 3213) 
ORDER BY 
    t.add_time 
DESC 
LIMIT 2

 

标签:ChatRecord,多表,t2,getId,t1,MyBatis,联查,id,select
From: https://www.cnblogs.com/Fooo/p/18236521

相关文章

  • mybatisPlus - [01] 概述
    MybatisPlus可以节省我们大量工作时间,所有的CURD代码它都可以自动化完成! 一、是什么  MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,其设计目的是在不改变MyBatis核心功能的基础上对其进行扩展和增强,从而简化开发过程并提升开发效率。 二、特点(1)无侵入性:MyBatis-Plu......
  • MyBatis学习总结1
    1.MyBatis介绍1.1什么是框架框架(framework)(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性,即已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。​如果将开发完成的软......
  • mybatis逆向工程generatorConfiguration配置
      <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"&......
  • MyBatis的JdbcType与MySQL数据类型之间的对应关系
    MyBatis的JdbcType与MySQL数据类型之间存在一定的对应关系,这些映射帮助MyBatis在处理SQL查询时正确地将数据库中的数据类型转换为Java对象。以下是一些常用的MyBatisJdbcType与MySQL数据类型的对应关系:BIGINT-对应MySQL的BIGINT类型,用于存储大整数值。INTEGER -对应MySQL的......
  • Java_Mybatis
        Mybatis是一款优秀的持久层框架,用户简化JDBC(使用Java语言操作关系型数据库的一套API)开发使用Mybatis查询所有用户数据:代码演示:UserMapper:@Mapper//被调用时会通过动态代理自动创建实体类,并放入IOC容器中publicinterfaceUserMapper{@Select("sel......
  • Mybatis + SpringBoot 构建项目流程总结
    软件版本SpringBoot:3.0.2 引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot......
  • Java (MyBatis)
    前沿MyBatis是一个开源的持久层框架,它简化了数据库访问的过程,通过将SQL语句和Java方法进行映射1.SQL和Java方法的映射:MyBatis使用XML或注解来配置SQL语句,并将SQL语句映射到Java接口或方法上,使得开发者可以直接调用Java方法来执行数据库操作。2.SQL语句的......
  • mybatis - [07] 模糊查询
    题记部分   (1)mapper类List<User>getUserLike(Stringvalue);(2)mapper.xml<!--写法1--><selectid="getUserLike"resultType="com.harley.pojo.User">select*fromuserwherenamelike#{value}</select><......
  • mybatisplus代码生成
    因为现在使用了mybatis框架,但是一些代码重复很耗费时间,为了加快开发速度,了解了mybatis-plus,而且也知道了能自动生成后端的样例。所需配置<!--mybatisPlus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-star......
  • 【MyBatisPlus】MyBatisPlus条件查询
    【MyBatisPlus】MyBatisPlus条件查询文章目录【MyBatisPlus】MyBatisPlus条件查询1、查询条件方式2、组合条件3、NULL值处理4、查询投影-设置【查询字段、分组】5、查询条件6、字段映射与表名映射问题导入1、查询条件方式MyBatisPlus将书写复杂的SQL查询条件进......