首页 课程 师资 教程 报名

MyBatis小于等于转义的写法

  • 2022-07-22 09:53:33
  • 2452次 星辉

MyBatis小于等于转义的写法是什么?星辉小编来告诉大家。在Mybatis中,SQL语句的大于号(>)和小于号(<)是xml文件中的特殊字符(< >),需要进行转义。

使用 xml 的转义字符方法:

例子:

	<select id="getListCount" resultType="int" parameterType="java.util.HashMap">
		SELECT * FROM V_gsuserbanding AS tm WHERE 1=1
		<if test="UserName !=null and UserName !=''">
		和像 "%"#{UserName}"%" 这样的用户名
		</如果>
		<if test="BeginTime !=null and BeginTime !=''">
		和 CreateTime <![CDATA[ >= ]]> #{BeginTime} - 转义>=
		</如果>
		<if test="EndTime !=null and EndTime !=''">
		和 CreateTime <![CDATA[ <= ]]> #{EndTime} - 转义 <=
		</如果>		
	</选择>

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

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交