温馨提示×

Mybatis OrderBy能否使用外部参数

小樊
102
2024-07-09 21:34:23
栏目: 编程语言

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

这样就可以根据外部参数动态指定排序规则。

0