一:元素类型为 "association" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminator?)"
二:元素类型 "mapper" 必须由匹配的结束标记 "</mapper>" 终止。
初接触SSM的伙伴很有可能遇到这个问题。结合我的经验和百度。再整理整合一个解决这类的问题的总结。
首先:这类问题都会抛出 SAXParseException 异常。
其次:对应的Mapper文件 在写resultMap映射时出现了这个问题。其他一写乱七八糟的问题,比如明明没有操作涉及到一个util工具类,怎么还报初始化失败呢?好吧,这些一般是SAXParseException问题的小弟。解决匪首,就只是乌合之众。散了散了。
第一种:所谓的resultMap 中各元素的顺序出现问题
第二种:明明顺序一毛一样,还是还是报这个错误。别急,仔细再瞧瞧,是不是多个了result Map什么东西。多给个空格,小数点?这种再一坨代码里,实在难以发现。仔细看
小数点.............................第一次这么反感小数点.............
还有说是因为
<association property="department" javaType="Department">
<id property="id" column="departmentId" />
<result property="name" column="departmentName" />
<result property="addTime" column="addTime" />
</association>
有空格的原因。专门试验了一下。没有问题。
拓展:如果仔细查找之后,修改完错误。再次报如下错误:
一:请确定返回值类型是否为ResultMap :
原因:
1.返回类型与你定义的resultMap里的id值不一致
2.resultMap=“” 的r没小写。
二:如果返回值类型,错写为resultType,会报如下错误
Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userMap'. Cause: java.lang
个人注解:
java.lang.ClassNotFoundException: Cannot find class: userMap
:找不到userMap这个问题是因为将resultMap写成了resultType,即resultType="userMap"
三:元素类型 "mapper" 必须由匹配的结束标记 "</mapper>" 终止。
这个错误也是Maper文件里的有非法的字符,仔细找找,往往报此类错误时都会跟上一个lineNumber:XXX.之类的位置。错误就在那个位置多了非法字符。