在mapper中如何传递多个参数?
时间: 2024-03-16 19:47:01 浏览: 136
在mapper中传递多个参数有多种方式,以下是其中两种常见的方式:
1. 使用@Param注解
可以通过在mapper方法的参数前面使用@Param注解来指定参数名称,然后在SQL语句中使用#{}占位符来引用对应的参数。例如:
```java
public interface UserMapper {
List<User> findByUsernameAndAge(@Param("username") String username, @Param("age") Integer age);
}
```
对应的SQL语句可以这样写:
```xml
<select id="findByUsernameAndAge" resultType="User">
SELECT * FROM user WHERE username = #{username} AND age = #{age}
</select>
```
2. 使用Map类型参数
也可以使用Map类型的参数来传递多个参数。在mapper方法中只需要定义一个Map类型的参数,然后在SQL语句中使用键值对的方式来引用对应的参数。例如:
```java
public interface UserMapper {
List<User> findByParams(Map<String, Object> params);
}
```
对应的SQL语句可以这样写:
```xml
<select id="findByParams" resultType="User">
SELECT * FROM user WHERE username = #{username} AND age = #{age}
</select>
```
调用该方法时,可以通过创建一个Map对象来传递参数:
```java
Map<String, Object> params = new HashMap<>();
params.put("username", "test");
params.put("age", 20);
List<User> users = userMapper.findByParams(params);
```
阅读全文