31、在 mapper 中如何传递多个参数? 答: 1)直接在方法中传递参数,xml 文件用#{0} #{1}来获取 2)使用 @param 注解:这样可以直接在 xml 文件中通过#{name}来获取举个例子
时间: 2024-10-17 12:11:15 浏览: 26
在MyBatis的mapper文件中,传递多个参数主要有两种常见的方式:
1. **位置参数方式**:
- 在Mapper接口的方法定义中,将多个参数按照顺序放在方法的形参列表里。例如:
```java
public List<User> getUsers(@Param("id") int userId, @Param("name") String userName);
```
- 在XML映射文件中,可以使用`#{0}`、`#{1}`这样的占位符来引用这些参数:
```xml
<select id="getUsers" resultType="User">
SELECT * FROM users WHERE id = #{0} AND name = #{1}
</select>
```
2. **@Param注解方式**:
- 使用`@Param`注解为每个参数指定一个名称,这样在XML中就可以直接使用`#{name}`的形式引用:
```java
@Select("SELECT * FROM users WHERE id = #{id} AND name = #{name}")
public List<User> getUsers(@Param("id") int userId, @Param("name") String userName);
```
- XML中相应地使用`#{id}`和`#{name}`作为参数值。
这两种方式都可以让你在SQL查询中动态地传入多个参数,提高了灵活性和代码复用性。
阅读全文