首页 > 编程知识 正文

sql小于等于号转义字符,xml中大于小于符号

时间:2023-05-05 14:27:03 阅读:222076 作者:3852

使用小于号或小于等于号的场景 <delete id="delOvertimeLog" parameterType="java.lang.Integer"> DELETE FROM operate_log WHERE operate_time < CURDATE() - INTERVAL #{logCleanTime} DAY</delete>

现象:会报解析异常

Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 53; 元素内容必须由格式正确的字符数据或标记组成。 at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:259) ~[mybatis-3.4.4.jar:3.4.4] at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:125) ~[mybatis-3.4.4.jar:3.4.4] at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:78) ~[mybatis-3.4.4.jar:3.4.4] at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:520) ~[mybatis-spring-1.3.1.jar:1.3.1] ... 54 common frames omitted

解决方案:

<delete id="delOvertimeLog" parameterType="java.lang.Integer"> DELETE FROM operate_log WHERE operate_time &lt; CURDATE() - INTERVAL #{logCleanTime} DAY</delete> 使用大于号的场景 <delete id="delOvertimeLog" parameterType="java.lang.Integer"> DELETE FROM operate_log WHERE operate_time > CURDATE() - INTERVAL #{logCleanTime} DAY</delete>

现象:正常执行,没有错误

总结

如果用小于号(<) 或者小于等于号(<=)则必须转义,其余可以不转义。因为Mapper.xml 文件里 < (小于)号 ,  >(大于)号 ,会被认为是括号。 

附录 xml转义字符 转义代码字符含义&lt;<小于号&gt;>大于号&amp;&和&apos;'单引号&quot;"双引号

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。