现在我们使用注解开发
但同时我们在类的相同结构下存在一个xml文件
并且我们的唯一标识与类要一致
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tubai.dao.UserDao">
<select id="selectAll" resultType="com.tubai.domain.User">
select * from user;
</select>
</mapper>
然后我们在主配置文件中写上
<mappers>
<mapper class="com.tubai.dao.UserDao"></mapper>
</mappers>
可以看出我们是没有配置xml文件的
运行发现
现在我们将xml中的唯一标识修改为不同的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tubai.dao.UserDao">
<select id="qaq" resultType="com.tubai.domain.User">
select * from user;
</select>
</mapper>
结论
当唯一标识(全限定类名+方法名)同时被注解和xml配置文件使用时,会报错,即使我们在主配值文件的mappers标签下并没有去配置这个xml,但仍然会检测到,这个是Mybatis的内部机制。
如果唯一标识不重复 那么就无所谓了 就能正常运行