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 注入问题,保障系统的安全性。