前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis的Mapper文件中的大于小于号,为什么要转成“< ;”、“> ;”,转义后的lt、gt又代表什么?

mybatis的Mapper文件中的大于小于号,为什么要转成“< ;”、“> ;”,转义后的lt、gt又代表什么?

作者头像
陈哈哈
发布2020-07-06 10:53:03
6K0
发布2020-07-06 10:53:03
举报
文章被收录于专栏:MySQL入坑记MySQL入坑记

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

问题分析

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

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

处理方式

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

XML中需要转义的字符有:

字段

符号

说明

&lt ;

<

小于号

&gt ;

>

大于号

&amp ;

&

&apos ;

'

单引号

&quot ;

"

双引号

代码语言:javascript
复制
原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[]]>这个标记所包含的内容将表示为纯文本,后台会原样解析并执行

代码语言:javascript
复制
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 → 小于等于

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么的Mapper文件中的"<"、">" 要转成“&lt ;”、“&gt ;”
  • 问题分析
  • 处理方式
  • EQ: EQUAL → 等于 NE: NOT EQUAL → 不等于 GT: GREATER THAN → 大于  LT : LESS THAN → 小于 GE: GREATER THAN OR EQUAL → 大于等于 LE: LESS THAN OR EQUAL → 小于等于
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档