MyBatis中传递多个参数到Mapper接口的方法中有哪几种方式?分别举例说明。
时间: 2024-10-13 15:03:35 浏览: 47
在MyBatis中,有三种常用的方式可以传递多个参数到Mapper接口的方法:
1. **Map作为参数**:
```java
// 使用Map
List<User> users = userMapper.selectList(new HashMap<String, Object>() {
{
put("id", 1);
put("name", "John");
}
});
```
这种方式适用于需要根据键值对动态查询的情况,Map中的key通常对应SQL中的列名。
2. **数组或集合作为参数**:
```java
// 使用数组
User user = userMapper.getUserById(new int[]{1});
// 或者集合
List<User> users = userMapper.getUsersByNames(Arrays.asList("John", "Jane"));
```
如果参数是固定数量且顺序固定的,可以使用数组或列表直接传入。
3. **使用泛型参数和占位符**:
```java
// 泛型参数
List<User> users = userMapper.selectAllUsers(1, "John"); // 参数1表示id,参数2表示名字
```
在这里,`selectAllUsers`方法声明了两个参数,并在SQL模板中使用`#{}`占位符来引用这些参数,MyBatis会将实际参数值替换到SQL中。
每种方式的选择取决于具体的业务需求和参数类型。
阅读全文