MyBatis:映射器

在定义SQL映射语句之前,我们需要告诉MyBatis到哪里去找到这些语句,因此我们需要在配置文件中告诉MyBatis到哪里去寻找映射文件。可以使用相对于类路径的资源引用,或完全限定资源定位符(包括file:///的URL),或类名和包名。
已知目录中,com.xliu.dao包中有:接口UserMapper, UserMapper.xml; 配置文件config.xml在resources目录下。

使用相对于类路径的资源引用(推荐)

1
2
3
<mappers>
<mapper resource="com/xliu/dao/UserMapper.xml"/>
</mappers>

每一个Mapper.xml都需要在Mybatis核心配置文件中注册!

使用完全限定资源定位符(URL)

1
2
3
<mappers>
<mapper class="com.xliu.dao.UserMapper"/>
</mappers>

注意点:

  • 接口和Mapper配置文件必须同名
  • 接口和Mapper配置文件必须在同一包下

    将包内的映射器接口是选全部注册为映射器

    1
    2
    3
    <mappers>
    <package name="com.xliu.dao"/>
    </mappers>

注意点:

  • 接口和Mapper配置文件必须同名
  • 接口和Mapper配置文件必须在同一包下

更新

如果SQL语句写在XML文件里,则使用<mapper resource="com/xliu/dao/UserMapper.xml"/>,如果是用注解实现,例如TeacherMapper.java(接口):

1
2
3
4
public interface TeacherMapper {
@Select("select * from teacher where id=#{tid}")
Teacher getTeacher(@Param("tid") int id);
}

那么使用<mapper class="com.xliu.dao.TeacherMapper"/>