映射Mapper.xml文件的几种方式

第一种:

mybatis-config.xml配置文件中的格式:

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

这种就是通过读取mapper.xml文件的资源路径方式来访问。

第二种:

mybatis-config.xml配置文件中的格式:

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

这种是通过读取本机的mapper.xml文件的路径访问,因为移植性比较差,所以已经被废弃使用了,了解即可。

第三种:

mybatis-config.xml配置文件中的格式:

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

这种方式是使用的是mapper接口路径,其实也就是dao接口的路径,上面的org.mybatis.builder其实就是dao接口的包名称,***Mapper就是mapper.xml文件的名称。实现这样的方式有几个要求:
1:mapper.xml文件必须要和接口放在同一目录下,比如:在这里插入图片描述
2:mapper.xml文件名必须要和接口名一致,比如接口名称为UserMapper,那么文件名必须是UserMapper.xml。
这种方式在eclipse中使用时没有问题,如果是在idea中的话,需要在pom.xml文件中加入以下配置:

<build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>

具体原因好像是idea中的xml文件默认是不放在java目录下的,所以必须要将xml文件声明到java目录下,大致是这样的,具体记不清楚了,可以百度。

第四种:

mybatis-config.xml配置文件中的格式:

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

这种方式和第三种很相似,不同的就是标签不一样,然后已进入的路径也不一样,其他完全相同,这种方式是直接扫描org.mybatis.builder下的所有xml文件。配置也和第三种方式一样,只是书写方式不同而已。第三种和第四种方式mapper.xml和mapper.java是没有分离的,这个问题之后会在spring中解决,所以不用担心。


版权声明:本文为weixin_45151960原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。