mybatis传递多个参数,包含集合怎么写入参
时间: 2023-09-17 21:04:20 浏览: 108
在MyBatis中,传递多个参数,包含集合作为入参可以通过以下方法实现:
1. 将多个参数封装成一个Java对象
可以创建一个Java对象,包含所有需要的参数,包括集合。然后将该对象作为方法的入参传递给MyBatis。在SQL语句中可以直接引用该对象的属性值。
例如,创建一个包含多个参数和集合的Java对象:
```java
public class MyParams {
private int id;
private String name;
private List<Integer> ids;
// 省略getters和setters方法
}
```
在Mapper接口中定义方法:
```java
void myMethod(MyParams params);
```
在XML配置文件中使用该方法:
```xml
<select id="myMethod" parameterType="com.example.MyParams">
SELECT * FROM my_table
WHERE id = #{id}
AND name = #{name}
AND id IN
<foreach item="item" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
2. 使用@Param注解
可以在Mapper方法的参数上使用@Param注解来指定参数的名称,在SQL语句中可以直接引用该名称。
例如,定义Mapper方法:
```java
void myMethod(@Param("id") int id, @Param("name") String name, @Param("ids") List<Integer> ids);
```
在XML配置文件中使用该方法:
```xml
<select id="myMethod" parameterType="java.util.Map">
SELECT * FROM my_table
WHERE id = #{id}
AND name = #{name}
AND id IN
<foreach item="item" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
以上两种方法都可以实现在MyBatis中传递多个参数,包含集合作为入参。根据实际情况选择合适的方法来使用。
阅读全文