来看下接口和mapper.xml是如何关联的.
首先查看下官方文档,可以看 出映射器(mappers)可以配置为2种形式,
一种是指定xml文件,另一种是指定接口.
先来看下指定xml,并且xml文件和接口在同包下且名称相同
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.1.10:3366/mybatis"/>
<property name="username" value="mybatis"/>
<property name="password" value="TEST.mybatis1"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="net/hyjcn/mybatis/mapper/UserMapper.xml"/>
</mappers>
</configuration>
由上可以看出,当映射器(mappers)指定xml文件时,接口是根据mapper的namespace属性与其关联的.
那么xml文件和接口不同名或不同包,会不会报错呢?
经测试,当映射器(mappers)为指定xml文件时,如
<mapper resource="UserMapper1.xml"/>或
<mapper url="file:///D:/workspace/mybatis/mybatis/src/main/resources/UserMapper1.xml"/>
只要 namespace 写对了,mapper.xml文件和接口可以不同名或不同包.