mapper xml sql 参数判断及后端方法参数传入
时间: 2023-08-08 20:06:55 浏览: 94
在MyBatis的mapper XML文件中,可以通过if和choose等标签进行参数判断,以决定是否执行某段SQL语句。例如,下面的例子中,当参数"SearchText"不为空时,才会执行SELECT语句:
```xml
<select id="selectUser" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<if test="SearchText != null and SearchText != ''">
AND username like '%${SearchText}%'
</if>
</where>
</select>
```
在后端方法中,可以将参数封装为一个对象,或者直接传递多个参数。例如,下面的例子中,将参数封装为一个Map对象传递给mapper方法:
```java
public List<User> selectUsers(Map<String, Object> paramMap) {
return userMapper.selectUser(paramMap);
}
```
或者直接传递多个参数:
```java
public List<User> selectUsers(String searchText, int page) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("SearchText", searchText);
paramMap.put("page", page);
return userMapper.selectUser(paramMap);
}
```
需要注意的是,MyBatis中的参数传递是基于名称的,即mapper方法中的参数名称必须与mapper XML文件中的参数名称一致,否则会抛出"Parameter not found"的异常。
阅读全文