字表参数关联主表的id呢怎么传入参数
时间: 2023-09-18 12:10:22 浏览: 39
如果需要在 MyBatis-Plus 的 `selectPage` 方法中,关联子表时,参数需要关联主表的 ID,可以通过 `inSql` 方法和占位符的方式来实现。
例如,我们有两个实体类 `User` 和 `UserRole`,它们之间是一对多的关系,即一个用户可以拥有多个角色。现在我们要查询指定 ID 的用户,并且这些用户的角色在某个指定的列表中。
可以使用如下代码实现:
```java
String roleIds = "1,2,3";
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", userId);
queryWrapper.inSql("id", "select user_id from user_role where role_id in (" + roleIds + ") and user_id = {0}");
IPage<User> userPage = userMapper.selectPage(new Page<>(1, 10), queryWrapper);
```
在上面的代码中,我们通过 `eq` 方法设置了 ID 的条件,然后通过 `inSql` 方法设置了一个子查询,该子查询的结果为拥有指定角色的用户 ID,并且还有一个占位符 `{0}`,用于替换主表的 ID 值。最后,我们将主表的 ID 值作为参数传入 `selectPage` 方法中。
需要注意的是,为了避免 SQL 注入攻击,我们需要将 roleIds 参数处理为 SQL 语句中的字符串,并使用占位符的方式传入主表的 ID 值。这样才能保证安全性。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)