<resultMap 加判断条件
时间: 2023-08-26 11:08:54 浏览: 308
在 MyBatis 中,可以使用 `<if>` 标签来加入判断条件。在 `resultMap` 中,可以使用 `<result>` 标签来映射查询结果到 Java 对象的属性上,并且可以在 `<result>` 标签中使用 `<if>` 标签来加入判断条件。
例如,假设我们有一个 `User` 类,其中有 `id`、`name`、`age` 三个属性,我们想要根据用户的年龄范围来查询用户信息,可以在 `resultMap` 中添加如下配置:
```xml
<resultMap id="userMap" type="User">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<if test="minAge != null">
and age >= #{minAge}
</if>
<if test="maxAge != null">
and age <= #{maxAge}
</if>
</resultMap>
```
在上面的代码中,我们使用了 `<if>` 标签来判断是否需要加入年龄的查询条件,如果 `minAge` 或者 `maxAge` 不为 `null`,则会自动加入对应的 SQL 条件。注意,在 SQL 中,大于等于和小于等于分别使用 `>=` 和 `<=` 来表示。
在实际使用时,我们可以通过传递参数来控制查询条件,例如:
```java
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("minAge", 18);
paramMap.put("maxAge", 30);
List<User> userList = sqlSession.selectList("getUserList", paramMap);
```
在上面的代码中,我们将 `minAge` 设置为 18,将 `maxAge` 设置为 30,然后通过 `selectList` 方法来执行查询,并将查询结果映射到 `User` 类型的对象列表中。MyBatis 会自动根据 `resultMap` 中的配置来完成结果的映射,并且会根据传递的参数来自动加入查询条件。
阅读全文