mybaitis动态排序怎么写
时间: 2024-01-14 19:02:03 浏览: 29
MyBatis动态排序可以通过使用`<if>`和`<choose>`标签结合`ORDER BY`语句来实现。以下是一个示例:
```xml
<select id="getUserList" resultMap="userMap">
SELECT * FROM user
<where>
<if test="username != null and username != ''">
AND username = #{username}
</if>
</where>
<choose>
<when test="sortField == 'id'">
ORDER BY id
</when>
<when test="sortField == 'username'">
ORDER BY username
</when>
<when test="sortField == 'email'">
ORDER BY email
</when>
<otherwise>
ORDER BY id
</otherwise>
</choose>
<if test="sortOrder != null">
<if test="sortOrder == 'desc'">
DESC
</if>
<if test="sortOrder == 'asc'">
ASC
</if>
</if>
</select>
```
在上面的示例中,使用`<choose>`标签根据`sortField`的值动态生成`ORDER BY`语句。如果`sortField`的值不在预定义的排序字段中,则使用默认的排序字段`id`。同时,使用`<if>`标签判断`sortOrder`是否为空,如果不为空则根据其值决定排序方式。这样就实现了动态排序的功能。