为什么MyBatis的Mapper文件中的“<“、“>“ 要转成“&lt ;”、“&gt ;”

为什么的Mapper文件中的"<"、">" 要转成“&lt ;”、“&gt ;”
问题分析

mybatis中的mapper文件是xml文件,不允许出现类似“>”这样的字符,会与文件本身的标签"<xxx>"冲突,

就像mysql中有些关键字(如:select、insert等)不允许当做字段名,会引起冲突;

处理方式

1.用转义字符把>和<替换掉,使后台能够正常解析这个xml文件

XML中需要转义的字符有:

字段符号说明
&lt ;<小于号
&gt ;>大于号
&amp ;&
&apos ;'单引号
&quot ;"双引号
原SQL

select * from table where createTime >'2019-10-10' and createTime <= '2019-10-20' 

修改后SQL:

select * from table where createTime &gt; '2019-10-10' and createTime &lt;= '2019-10-20' 

2.增加声明标志:<![CDATA[]]>

被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,后台会原样解析并执行

SELECT *FROM table
	<where>
		<!-- 录入日期 范围 -->
		<if test="date_st != '' and date_ed != ''">
			<![CDATA[
				and createTime >= #{date_st} and createTime =< #{date_ed}
			]]>
		</if>
	</where>

’另外“&lt ;”,“&gt ;”,“&ge ;”这些转移字符都是什么含义呢?

EQ: EQUAL   →   等于
NE: NOT EQUAL  →   不等于
GT: GREATER THAN   →    大于 
LT : LESS THAN   →   小于
GE: GREATER THAN OR EQUAL   →   大于等于
LE: LESS THAN OR EQUAL   →   小于等于
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值