在MyBatis中,OrderBy语句通常是在SQL语句中硬编码的,不支持直接使用外部参数来动态指定排序规则。但是,可以通过动态SQL使用IF或者Choose标签来动态拼接OrderBy语句,从而实现动态排序功能。示例如下:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
在调用该select语句时,可以传入一个orderBy参数来指定排序规则,如:
Map<String, Object> params = new HashMap<>();
params.put("orderBy", "id DESC");
List<User> users = sqlSession.selectList("selectUsers", params);
这样就可以根据外部参数动态指定排序规则。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:mybatis排序是否可以使用外部参数