1.mapper.xml的命名空间(namespace)名称错误。例如调用的是"myQuery.mySelect",结果mapper里写的却是这个:
<mapper namespace="myQurey"><!-- Query写成了Qurey -->
<select id="MySelect"...></select>
</mapper>
2.mapper.xml里的方法名(id)写错,效果基本和上面一样,不再赘述。
3.mapper.xml里的方法名(id)重复:
<mapper namespace="myQurey">
<select id="MySelect"...></select>
...
...
<select id="MySelect"...></select>
</mapper>
4.aMapper.xml和bMapper.xml两个mapper文件的命名空间名称重复。
5.方法体内的SQL语句存在判断范围的尖括号:
<mapper namespace="myQurey">
<select id="MySelect"...>
select id from table_a
where time <= sysdate <!-- sql语句中存在尖括号("<"或">") -->
</select>
</mapper>
<!--要改为以下方式-->
<mapper namespace="myQurey">
<select id="MySelect"...>
select id from table_a
where time <![CDATA[<=]]> sysdate <!-- 给这种特殊括号增加<![CDATA[]]> -->
</select>
</mapper>
6.方法体存在语法错误
<!-- select方法体,写成了delete标签 -->
<delete id="querySomething" parameterType="String" resultType="map">
SELECT ID FROM TABLE_A WHERE FID = #{fid}
</delete>
<!-- 应改为: -->
<select id="querySomething" parameterType="String" resultType="map">
SELECT ID FROM TABLE_A WHERE FID = #{fid}
</select>
剩下的像文件位置、打包什么导致的问题,每个环境各有区别,不太具有通用性,不再赘述。