使用mybatisPlus的queryWrapper做左联接,内联接方式
作者: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 调用方法。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。