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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐