在MyBatis中實現動態排序可以通過自定義排序字段和排序方式來實現。下面是一個示例:
首先,定義一個實體類來保存排序字段和排序方式:
public class Sort {
private String field; // 排序字段
private String order; // 排序方式,可以是"ASC"或"DESC"
// getters and setters
}
接著,在Mapper接口中添加一個方法來接收排序字段和排序方式:
public interface UserMapper {
List<User> selectUsers(@Param("sort") Sort sort);
}
然后,在對應的Mapper XML文件中使用動態SQL來根據傳入的排序字段和排序方式進行排序:
<select id="selectUsers" resultMap="userResultMap">
SELECT * FROM users
<if test="sort != null">
ORDER BY ${sort.field} ${sort.order}
</if>
</select>
最后,在調用Mapper方法時傳入一個Sort對象來指定排序字段和排序方式:
Sort sort = new Sort();
sort.setField("name");
sort.setOrder("ASC");
List<User> users = userMapper.selectUsers(sort);
這樣就可以動態指定排序字段和排序方式來實現動態排序了。