在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);
這樣就可以根據外部參數動態指定排序規則。