在mybatisplus中<resultMap>映射可以是可变的嘛
时间: 2024-03-15 13:46:36 浏览: 55
在 Mybatis-Plus 中,`<resultMap>` 标签可以使用动态 SQL 功能实现映射可变。例如,可以使用 `<choose>` 标签结合 `<when>` 和 `<otherwise>` 标签实现动态映射。
下面是一个示例:
```
<select id="selectUser" resultMap="userResultMap">
SELECT
id, username, password, email, nickname, reg_time
FROM
user
<where>
<if test="username != null and username != ''">
and username like concat('%', #{username}, '%')
</if>
<if test="email != null and email != ''">
and email like concat('%', #{email}, '%')
</if>
</where>
<choose>
<when test="type == 'simple'">
<result column="id" property="id"/>
<result column="username" property="username"/>
<result column="email" property="email"/>
</when>
<otherwise>
<resultMap type="com.example.entity.User" id="userResultMap">
<result column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
<result column="email" property="email"/>
<result column="nickname" property="nickname"/>
<result column="reg_time" property="regTime"/>
</resultMap>
</otherwise>
</choose>
</select>
```
在这个例子中,`<choose>` 标签根据 `type` 参数的值决定使用哪个映射规则,如果 `type` 的值为 `simple`,则使用简单的映射规则,只映射 `id`、`username`、`email` 三个字段;否则使用完整的映射规则,映射所有字段。这样就实现了动态映射的功能。
阅读全文