in传数组 mybstis_mybatis-plus中的in的使用,是传Array?还是传List?别再纠结了
时间: 2024-02-01 16:14:01 浏览: 29
在 MyBatis 和 MyBatis-Plus 中,`in` 的使用可以传递数组或者 List,都是可以的。具体使用哪种方式,取决于你的需求和代码实现。
如果你已经有一个数组,可以直接将数组作为参数传递给 `in`,例如:
```java
List<Integer> ids = Arrays.asList(1, 2, 3);
List<User> users = userMapper.selectBatchIds(ids);
```
如果你没有一个数组,但是有一个 List,也可以将 List 转换成数组然后再传递给 `in`,例如:
```java
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(3);
List<User> users = userMapper.selectBatchIds(ids.toArray(new Integer[ids.size()]));
```
需要注意的是,如果使用数组作为参数传递给 `in`,需要在 SQL 中使用 `${}` 进行占位符的替换,而不能使用 `#{}`,因为 `#{}` 会将数组解析成字符串,而不是数组。
```xml
<select id="selectByIds" parameterType="java.lang.Integer[]" resultMap="userResultMap">
SELECT * FROM user WHERE id IN
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
${item}
</foreach>
</select>
```
如果使用 List 作为参数传递给 `in`,则可以在 SQL 中使用 `#{}` 进行占位符的替换。
```xml
<select id="selectByIds" parameterType="java.util.List" resultMap="userResultMap">
SELECT * FROM user WHERE id IN
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)