开发手记:MyBatis的mapper文件的中SQL符号转义
字符转义问题
在 MaBatis 的 XML 文件中编写SQL语句时,<
符号会出现转义问题,例如:
<!--查询指定月份内的订单--> <select id="queryInRange" resultType="OrderEntity"> SELECT * FROM order WHERE create_time > DATE_SUB(NOW(), INTERVAL #{month} MONTH) AND user_id = #{id}; </select>
会出现这种问题的原因是:<
会与构成 XML 标签的<>
解析冲突
解决方案
-
通过转义符
原符号 <
<=
>
>=
&
'
"
替换符号 <
<=
>
>=
&
'
"
-
通过
CDATA
块CDATA
(Character Data)块是 XML 的一种语法结构,不是 MyBatis 特有的。它用于将文本数据视为纯文本,而不进行 XML 解析。<select id="queryInRange" resultType="OrderEntity"> SELECT * FROM order WHERE create_time <![CDATA[>]]> DATE_SUB(NOW(), INTERVAL #{month} MONTH) AND user_id = #{id}; </select>
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/17441891.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步