mybatis 注解引发的bug,org.apache.ibatis.builder.BuilderException: Could not find value method on SQL anno

搞了两天的bug,终于在同事的帮助下找到原因了,因为自己很少用注解开发且还用script标签。

这种bug,网上一搜一大堆,但是都xml方式开发,大部分说的是返回类型或者入参类型对不上,而我是注解式开发。

先贴写出来的sql:

@Select({""
})

解决方法:把上面  的  <  换成转义字符 < 就有ok了。

主要的表跟字段还有没有出错的where条件我已经简写了。这种注解式开发,如果加上script标签,代表该条sql以xml解析的方式解析映射,xml解析方式大家应该都知道,<  或者  >  应该都用转义字符,但是这里看起来是个String没在意,导致这个bug。最坑的不是这个,而且pom文件里的mybatis相关的jar包的版本也有点问题,在启动的时候不会报错,能启动成功,但是在你services调用dao层的时候就会报这个错。后来我把mybatis相关的jar版本指定了一个,在启动的时候就会报错,启动不成功,报的错误就是你那个dao文件解析失败,就是这个错误:

org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation.  Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1807; The content of  elements must consist of well-formed character data or markup.

你可能感兴趣的:(java学习)