在MyBatis中,可以使用<trim>
標簽來實現多字段排序的功能。以下是一個示例:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<trim prefix="ORDER BY" suffixOverrides=",">
<if test="orderByField1 != null and orderByField1 != ''">
${orderByField1} ${orderType1}
</if>
<if test="orderByField2 != null and orderByField2 != ''">
, ${orderByField2} ${orderType2}
</if>
</trim>
</select>
在調用該查詢方法時,可以傳入參數orderByField1
、orderType1
、orderByField2
、orderType2
來指定排序字段和排序類型。例如:
Map<String, String> params = new HashMap<>();
params.put("orderByField1", "age");
params.put("orderType1", "DESC");
params.put("orderByField2", "name");
params.put("orderType2", "ASC");
List<User> users = sqlSession.selectList("selectUsers", params);
這樣就可以實現多字段排序的功能。當orderByField1
和orderByField2
都不為空時,會按照orderByField1
指定的字段和排序方式優先排序,然后再按照orderByField2
指定的字段和排序方式進行排序。