mybatis动态sql后面会自动拼接一个order by
时间: 2024-12-18 08:29:23 浏览: 4
Mybatis防止sql注入的实例
MyBatis 的动态 SQL 允许你在 SQL 语句中插入变量或者条件,其中确实支持动态生成 ORDER BY 子句。当你在 Mapper XML 或者注解映射中使用 `<if>`, `<choose>` 或 `<when>` 标签来构建动态 WHERE、ORDER BY 等部分,并设置了 `orderItem` 属性,MyBatis 会在执行时将这些元素合并到最终的查询语句中。
例如,如果你有如下配置:
```xml
<select id="selectAllWithDynamicOrder" parameterType="map">
SELECT * FROM table
<if test="sortField != null and sortDirection != null">
ORDER BY ${sortField} ${sortDirection}
</if>
</select>
```
这将会根据传入的 sortField 和 sortDirection 参数动态添加 ORDER BY 子句。如果 sortField 和 sortDirection 都非空,查询结果就会按照指定字段排序。
阅读全文