Mybatis中使用大于小于等于的正确方法

在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中<=不能使用,需要使用上面任意一种方法转义,但是>=可以使用!

经验分享 程序员 微信小程序 职场和发展