前言:
我们在使用mybatis时SQL是写在xml映射文件中,如果写的sql中有一些特殊字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,因为转义之后可能会出现一些问题比如SQL语句无法执行(如下图所示).所有我们可以通过<!CDATA[]>来解决
下方的SQL语句加粗部分的**<=**就会被解析掉而无法正常实现SQL语句的查询功能
SELECT
d.plugin_idASpluginId,
p.nameASname,
d.integralASintegral
FROM
(
SELECT
SUM(integral)ASintegral,
plugin_id
FROM
tik_integral_detail
WHERE
user_id=#{userId}
ANDDATE_SUB(CURDATE(),INTERVAL7DAY) **<=** DATE(create_time)
GROUP BY
plugin_id
)AS d
JOINtik_pluginpONd.plugin_id=p.id
错误提示:
那么如何保证SQL语句可以正常执行呢?如下形式就可以了
SELECT
d.plugin_idASpluginId,
p.nameASname,
d.integralASintegral
FROM
(
SELECT
SUM(integral)ASintegral,
plugin_id
FROM
tik_integral_detail
WHERE
user_id=#{userId}
ANDDATE_SUB(CURDATE(),INTERVAL7DAY)**<![CDATA[<=]]>**DATE(create_time)
GROUP BY
plugin_id
)AS d
JOINtik_pluginpONd.plugin_id=p.id
什么是<![CDATA[]]>
<!CDATA[]>是xml语法.在CDATA内部的所有内容会被解析器忽略.如果包含了很多的"<"字符<=和"&"字符--就像程序代码一样,最好把他们都放在CDATA部件中.总结:
这些SQL语句还有很多需要学习的地方需要继续努力.