MyBatis 提供了一個<if>
標簽來動態拼接ORDER BY
子句,可以有效避免 SQL 注入。具體做法如下:
<if>
標簽來判斷是否需要添加ORDER BY
子句。<select id="selectUsers" resultType="User">
SELECT * FROM users
<if test="orderBy != null">
ORDER BY ${orderBy}
</if>
</select>
orderBy
變量的取值,從而避免直接拼接 SQL 語句導致的 SQL 注入風險。public List<User> selectUsers(String orderBy) {
return sqlSession.selectList("selectUsers", orderBy);
}
通過以上方式,可以有效防止 SQL 注入問題,保障系統的安全性。