在MyBatis中,OrderBy語句通常是在SQL語句中硬編碼的,不支持直接使用外部參數(shù)來動(dòng)態(tài)指定排序規(guī)則。但是,可以通過動(dòng)態(tài)SQL使用IF或者Choose標(biāo)簽來動(dòng)態(tài)拼接OrderBy語句,從而實(shí)現(xiàn)動(dòng)態(tài)排序功能。示例如下:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
在調(diào)用該select語句時(shí),可以傳入一個(gè)orderBy參數(shù)來指定排序規(guī)則,如:
Map<String, Object> params = new HashMap<>();
params.put("orderBy", "id DESC");
List<User> users = sqlSession.selectList("selectUsers", params);
這樣就可以根據(jù)外部參數(shù)動(dòng)態(tài)指定排序規(guī)則。