mybatis相关-转义字符串报错-Cause: org.xml.sax.SAXParseException
部分报错信息
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TargetRepository'
defined in URL [jar:file:/D:/SRA/workspace-nca/.metadata/.plugins/org.eclipse.wst.server.core
/tmp0/webapps/ciw-web/WEB-INF/lib/ciw-domain-1.0.0.jar!/aero/nca/ciw/domain
/repository/TrainingCheckRecordTm3Repository.class]:
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: org.apache.ibatis.builder.BuilderException:
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 58; columnNumber: 68;
vf^Cv"select"́AΉ·鏉¹^O"</select>"ŏI¹·镋vª 肜·B
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
... 24 common frames omitted
Cause: org.xml.sax.SAXParseException
报错原因 :
写在xml中的 SQL 检索条件部分 存在
<
,>
,或者是 作为检索结果的 拼接字符串部分 有<
>
并未进行转义由于 这两个符号是 xml标签的 组成部分,导致 编译时 无法正确区分SQL文 和 标签
关键提示信息 :vfCv"**select**"́AΉ·鏉¹O"</select>"ŏI¹·镋vª 肜·B
(这里的意思是 出现这个提示 就意味着 编译中 SQL文没有被正确解释,也就是SQL文中可能有错误的字符或者未转义的 字符)
解决方法:
对碰到的 需要转义的字符进行转义 如
指定字符 | 转义形式 |
---|---|
< |
< |
> |
> |
解决过程:
查看 IED 或者 Eclipse的完整日志文件,就可以从容查看完整的日志信息不用因为找不出错误来回执行浪费时间了
eclipse的日志信息在 eclipse安装位置 的盘符下面 var/log文件夹下
如 Z:\var\log\项目名文件夹