MyBatis如何实现条件查询的具体步骤和语法是什么?
时间: 2024-09-29 12:13:21 浏览: 38
MyBatis通过结合SQL映射文件(*.xml)和动态SQL来实现条件查询。以下是具体步骤和语法:
1. **配置XML映射文件**:
在`sqlMap.xml`或对应的Mapper XML文件中,定义一个查询语句(例如`select`),并使用`if`, `choose`等标签来设置条件。例如:
```xml
<select id="queryUsers" parameterType="map">
SELECT * FROM users
<where>
<if test="name != null">name like #{name}</if>
<if test="age != null">AND age = #{age}</if>
</where>
</select>
```
这里假设`name`和`age`是传入的参数,会根据它们是否非空来动态添加到SQL查询条件中。
2. **调用方法并传递参数**:
在Mapper接口中,创建一个对应的方法,并指定其ID与XML中的`id`匹配:
```java
public interface UserMapper {
List<User> queryUsers(Map<String, Object> params);
}
```
调用这个方法时,可以传入键值对作为参数,如:
```java
Map<String, Object> params = new HashMap<>();
params.put("name", "%张%");
params.put("age", 25);
List<User> users = userMapper.queryUsers(params);
```
3. **动态SQL的其他选项**:
- `foreach`标签用于处理数组或集合类型的参数,遍历每个元素生成相应的SQL。
- `trim`、`upper`、`lower`等函数可以在表达式中应用字符串操作。
阅读全文