十四、XML配置之映射器

映射器(mappers)

既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要来定义 SQL 映射语句了。 但首先,我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:/// 形式的 URL),或类名和包名等。例如:

这些配置会告诉 MyBatis 去哪里找映射文件,剩下的细节就应该是每个 SQL 映射文件了。

1. 使用相对于类路径的资源引用(强烈推荐

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>

2. 使用完全限定资源定位符(URL) :强烈不推荐使用

<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>

3. 使用映射器接口实现类的完全限定类名:

<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>

使用这种方式需要保证:
    1. 接口类xml文件在同一目录下
    2. 接口文件xml文件的名称相同

如下图:UserMapper.java和UserMapper.xml

4.  将包内的映射器接口实现全部注册为映射器(这种方式类似typeAlias下的package标签

<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

使用这种方式需要保证:
    1. 接口文件xml文件的名称相同

因此,在实际开发过程中,还是推荐使用第一种方式。

posted @ 2022-06-15 15:38  Epiphany8Z  阅读(117)  评论(0编辑  收藏  举报