使用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 调用方法。

总结

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

相关文章

  • .idea文件夹里面iml文件的作用及说明

    .idea文件夹里面iml文件的作用及说明

    这篇文章主要介绍了.idea文件夹里面iml文件的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 关于SpringBoot的热部署方案

    关于SpringBoot的热部署方案

    这篇文章主要介绍了关于SpringBoot的热部署方案,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本,本文就来详解热部署方案,需要的朋友可以参考下
    2023-05-05
  • Java中FileOutputStream流的write方法

    Java中FileOutputStream流的write方法

    这篇文章主要为大家详细介绍了Java中FileOutputStream流的write方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • mybatis初始化SqlSessionFactory失败的几个原因分析

    mybatis初始化SqlSessionFactory失败的几个原因分析

    这篇文章主要介绍了mybatis初始化SqlSessionFactory失败的几个原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java Stream 流中 Collectors.toMap 的用法详解

    Java Stream 流中 Collectors.toMap 的用法详解

    这篇文章主要介绍了Stream 流中 Collectors.toMap 的用法,Collectors.toMap()方法是把List转Map的操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Java反射之通过反射获取一个对象的方法信息(实例代码)

    Java反射之通过反射获取一个对象的方法信息(实例代码)

    下面小编就为大家带来一篇Java反射之通过反射获取一个对象的方法信息(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Java ThreadPool的使用解析

    Java ThreadPool的使用解析

    这篇文章主要介绍了Java ThreadPool的使用解析,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • springboot 通过代码自动生成pid的方法

    springboot 通过代码自动生成pid的方法

    这篇文章主要介绍了springboot 通过代码自动生成pid的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 深入java内存查看与分析详解

    深入java内存查看与分析详解

    本篇文章是对java内存查看进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 一文掌握JavaWeb登录认证

    一文掌握JavaWeb登录认证

    登录认证是每个系统中必不可少的功能,通过用户名和密码来验证用户身份,JavaWeb中实现登录认证通常需要处理HTTP协议的无状态性,涉及会话管理、令牌技术等,本文给大家介绍JavaWeb登录认证的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-09-09

最新评论