不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2023-05-27 20:14:38  修改时间:2024-04-26 01:27:48  分类:Java框架/系统  编辑

在MyBatis中sql是写在xml映射文件中的,如果SQL中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎么办呢?

方法一:使用特殊转义字符

例如,>=开始日期 并且<=结束日期

> 大于号 

<  小于号 

<if test="searchTimeBegin != null and searchTimeBegin != ''">
    AND tcci.consume_time &gt;= CONCAT(#{searchTimeBegin},' 00:00:00')
</if>
<if test="searchTimeEnd != null and searchTimeEnd != ''">
    AND tcci.consume_time &lt;= CONCAT(#{searchTimeEnd},' 23:59:59')
</if>

方法二:使用<![CDATA[ ]]>符号

这里面的内容将不被解析

<if test="beginTime!=null">
  AND DATE (os.show_start_time) >= DATE(#{beginTime})
</if>
<if test="endTime!=null">
  AND DATE (os.show_start_time) <![CDATA[<=]]> DATE(#{endTime})
</if>

在MyBatis中<=不能使用,需要使用上面任意一种方法转义,但是>=可以使用!