温馨提示×

Mybatis OrderBy如何实现多字段排序

小樊
339
2024-07-09 21:29:25
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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>

在调用该查询方法时,可以传入参数orderByField1orderType1orderByField2orderType2来指定排序字段和排序类型。例如:

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);

这样就可以实现多字段排序的功能。当orderByField1orderByField2都不为空时,会按照orderByField1指定的字段和排序方式优先排序,然后再按照orderByField2指定的字段和排序方式进行排序。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Mybatis OrderBy是如何工作的

0