- 方法一
转义字符
:
用转义字符把特殊字符替换掉。
XML转义字符
注意: 需要把;号带上,否则会出现代码错误!!
< < 小于号
> > 大于号
& & 和
' ’ 单引号
" " 双引号
示例代码:
<if test="startTime != null ">
AND order_date >= #{startTime,jdbcType=DATE}
</if>
<if test="endTime != null ">
AND order_date <= #{endTime,jdbcType=DATE}
</if>
注意下,这里的startTime,endTime都是Date类型的~
-
方法二
<![CDATA[ code ]]>
使用 <![CDATA[ code ]]> 符号进行说明,将此类符号在xml文件中不进行解析 。
示例代码
<if test="startTime != null ">
AND <![CDATA[ order_date >= #{startTime,jdbcType=DATE} ]]>
</if>
<if test="endTime != null ">
AND <![CDATA[ order_date <= #{endTime,jdbcType=DATE} ]]>
</if>
Mybatis 防止SQL注入
1. 采用“#{xxx}”这样的格式。若不得不使用“${xxx}”参数,做好过滤工作,来防止SQL注入攻击。
2. #{}:相当于JDBC中的PreparedStatement
3. ${}:是输出变量的值
4. #{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。