使用mybatisPlus的queryWrapper做左联接,内联接方式

 更新时间:2025年03月06日 09:25:54   作者:R-sz  
本文介绍了如何使用Mybatis-Plus的QueryWrapper进行SQL查询,包括左连接、内连接等操作,通过示例代码展示了如何构建复杂的SQL查询,并将结果存储在List对象中返回,希望给读者提供参考

mybatisPlus的queryWrapper做左联接,内联接

在service层生成使用mybatisplus的querywapper的Java代码

SELECT
bs_user.id,
bs_user.mobile,
bs_user.username,
bs_user.password,
bs_user.enable_state,
ss_user_social_security.user_id,
ss_user_social_security.enterprises_pay_social_security_this_month,
ss_user_social_security.enterprises_pay_the_provident_fund_this_month,
ss_user_social_security.participating_in_the_city_id,
ss_user_social_security.social_security_type,
ss_user_social_security.household_registration_type,
ss_user_social_security.social_security_base,
ss_user_social_security.industrial_injury_ratio
FROM
bs_user
LEFT JOIN
ss_user_social_security
ON
bs_user.id = ss_user_social_security.user_id
INNER JOIN
ss_company_settings
ON
bs_user.company_id = ss_company_settings.company_id
WHERE
ss_company_settings.company_id = 1 前面是表结构和vo对象

你可以参考下面的代码来执行这个查询

  • 使用 Mybatis-Plus 的 QueryWrapper 可以简化 SQL 的构建,并且可以避免写关键字拼写错误的问题
  • 假设你已经有了对应的 VO 类,其中包含上述查询结果中的所有属性和它们的 Getter/Setter 方法

可以参考下面的代码:

// 创建一个 QueryWrapper 对象
QueryWrapper<UserVO> queryWrapper = new QueryWrapper<>();

// 设置要查询的字段
queryWrapper.select("bs_user.id", "bs_user.mobile", "bs_user.username", "bs_user.password", 
    "bs_user.enable_state", "ss_user_social_security.user_id", 
    "ss_user_social_security.enterprises_pay_social_security_this_month", 
    "ss_user_social_security.enterprises_pay_the_provident_fund_this_month", 
    "ss_user_social_security.participating_in_the_city_id", 
    "ss_user_social_security.social_security_type", "ss_user_social_security.household_registration_type", 
    "ss_user_social_security.social_security_base", "ss_user_social_security.industrial_injury_ratio");

// 添加关联表
queryWrapper.leftJoin("ss_user_social_security", "bs_user.id = ss_user_social_security.user_id");
queryWrapper.innerJoin("ss_company_settings", "bs_user.company_id = ss_company_settings.company_id");

// 添加查询条件
queryWrapper.eq("ss_company_settings.company_id", 1);

// 调用 service 层的方法执行查询
List<UserVO> userList = userService.list(queryWrapper);
  • 这段代码中,我们使用了 QueryWrapper 对象来构建 SQL 语句。
  • 通过调用 select 和 join 等方法,我们可以设置要查询的字段和添加关联表。
  • 最后,使用 eq 和其他方法来设置查询条件。
  • 最后,调用 list 方法执行查询,并将结果存储在一个 List 对象中返回。
  • 注意要根据具体需要来替换上述代码中的 VO 类和 service 调用方法。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springcloud整合gateway实现网关的示例代码

    springcloud整合gateway实现网关的示例代码

    本文主要介绍了springcloud整合gateway实现网关的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java封装数组之添加元素操作实例分析

    Java封装数组之添加元素操作实例分析

    这篇文章主要介绍了Java封装数组之添加元素操作,结合实例形式分析了Java封装数组实现元素追加、插入等相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • Java Web Fragment在项目中使用方法详解

    Java Web Fragment在项目中使用方法详解

    这篇文章主要介绍了Web Fragment在项目中使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • webuploader 实现图片批量上传功能附实例代码

    webuploader 实现图片批量上传功能附实例代码

    这篇文章主要介绍了webuploader 实现图片批量上传功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • java导出excel 浏览器直接下载或者或以文件形式导出

    java导出excel 浏览器直接下载或者或以文件形式导出

    这篇文章主要介绍了java导出excel 浏览器直接下载或者或以文件形式导出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java8 Stream API之reduce使用说明

    java8 Stream API之reduce使用说明

    这篇文章主要介绍了java8 Stream API之reduce使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Java Swing JPanel面板的使用方法

    Java Swing JPanel面板的使用方法

    这篇文章主要介绍了Java Swing JPanel面板的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • java中request常用方法小结

    java中request常用方法小结

    这篇文章主要介绍了java中request常用方法小结,需要的朋友可以参考下
    2014-10-10
  • SpringBoot中的Ajax和MyBatis究竟是什么

    SpringBoot中的Ajax和MyBatis究竟是什么

    本文深入解析了Spring Boot项目中Ajax与MyBatis的核心作用及协作机制,Ajax作为前端异步通信引擎,通过axios等库实现无刷新数据交互,本文给大家介绍SpringBoot中的Ajax和MyBatis究竟是什么,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Mac Maven环境搭建安装和配置超详细步骤

    Mac Maven环境搭建安装和配置超详细步骤

    这篇文章主要给大家介绍了关于Mac Maven环境搭建安装和配置的超详细步骤,Maven是一种常用的Java构建工具,它可以自动化构建、测试和打包Java项目,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-10-10

最新评论