人在公司坐,bug天上来之一觉醒来项目无法运行
大清早上班代码运行报错,刚开始按照UnsatisfiedDependencyException错误提示的Mapper文件中实体类Bean文存在排查,由于IDEA显示Spring自动装配失败(代码无误,系统报错),误以为是装配出现问题,于是给Mapper文件添加**@Repository**注解(该注解作用是告知 Spring,为此类创建一个实现类,作为Bean注入到相关类)。发现问题依旧,查阅资料之后仍然误解,抓狂之际看到报错字段最后一行,关于某个Mapper.xml文件中显示:Error creating document instance.后进去发现(如图)
SQL语句中一个不起眼的错误提示,在MySQL中运行都是正常,定位到错误之后接下来的问题就迎刃而解了。
针对该问题查阅资料知:mybatis框架中的xml文件标签是 <…> 的形式, 因此当出现 “<” 号时, 会认为是一个标签的开始, 而在自后没有检索到“>”,故而出现UnsatisfiedDependencyException错误,而当使用“>”时,系统却不会报错(可能是运气)。
去mybatis官网查看发现并没有关于该问题详细讲解,在其他资料中找到常用的一些转义字符,建议在框架中尽量将字符进行转义后输入会避免不必要的错误
字符 | <(小于) | >(大于) | <=(小于等于) | >=(大于等于) | '(单引号) | "(单引号) | &(and) |
---|---|---|---|---|---|---|---|
转义字符 | <; | >; | <;= | >;= | &apos; | "; | &; |
另:遇到问题一定要先看完错误报告,否则本来三五分钟可以搞定的就会花数倍时间去定位bug,前车之鉴!!!