若依——后端多表联查(适用于只查询)

原始数据: sys_user\books_all\community_post  三张表

sys_user

books_all

community_post

需求:通过post表中的post_user_id、post_all_id ,拿到其他两个表对应的user_name、avatar、all_name,形成一个新的data{}

修改之前的请求返回值:

修改之后:

1、修改对应请求的domain里面的类

因为我是直接使用若依代码生成的查询请求,controller就没有变化。

在类里面添加你需要的对象

然后 alt+insert 快捷键生成getter、setter方法顺便在tostring方法添加

2、修改对应xml文件

1.在resultMap中添加

2.修改sql语句

外连接表sql语句模板

INNER JOIN sys_user c ON a.post_user_id = c.user_id

后端原来只要动这一点点东西啊啊啊/(ㄒoㄒ)/~~

### 若依框架不分离版本中的多表联查 在若依框架(RuoYi Framework)中,多表联查可以通过种方式实现。通常情况下,这涉及到编写SQL查询语句来联合格的数据。 #### 使用原生 SQL 查询 对于较为复杂的多表联查需求,可以直接通过编写原始的SQL语句来进行处理。这种方式提供了最大的灵活性,允许开发者精确控制查询逻辑: ```java // 定义一个自定义 Mapper 接口并继承 BaseMapper<T> public interface CustomUserMapper extends BaseMapper<User> { @Select("<script>" + "SELECT u.*, r.role_name FROM sys_user u LEFT JOIN sys_role r ON u.role_id = r.role_id" + "</script>") List<Map<String, Object>> selectUserRole(); } ``` 此代码片段展示了如何在一个 `CustomUserMapper` 中定义一个多表联查的方法[^2]。 #### 利用 MyBatis Plus 的 Wrapper 功能 MyBatis Plus 提供了强大的条件构造器功能,可以简化动态构建复杂查询的过程。虽然这不是直接针对若依框架的功能,但由于两者常被一起使用,因此也是一种有效的解决方案: ```java QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("u.status", 0).and(i -> i.like("r.role_name", "admin")); List<Object[]> result = userMapper.selectObjs(queryWrapper); ``` 这段 Java 代码说明了怎样利用 MyBatis Plus 的 `QueryWrapper` 来执行带有关联字段过滤条件的多表联查。 #### 结合 Spring Data JPA 或者其他 ORM 工具 当项目引入了更高级特性时,也可以考虑采用像 Spring Data JPA 这样的工具集,它们支持更优雅的方式来达关系型数据库的操作模式。然而,在标准版若依框架内,默认并不集成这些额外组件。 为了适应不同场景下的开发需求,建议根据实际业务情况选择合适的技术手段完成多表联查的任务。上述提到的各种方法都可以帮助达到目的,具体取决于团队技术栈的选择和个人偏好。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值