在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);
这样就可以动态指定排序字段和排序方式来实现动态排序了。