怎样在MyBatis的MyBatis-cfg.xml文件中配置Mapper?

怎样在MyBatis的MyBatis-cfg.xml文件中配置Mapper?在mybatis-cfg.xml文件中的mapper元素中,可以通过mapper和package进行配置,大致存在四种配置方式,每种配置方式都有自己的优缺点。下面我们逐一进行介绍。

怎样在MyBatis的MyBatis-cfg.xml文件中配置Mapper?在mybatis-cfg.xml文件中的mapper元素中,可以通过mapper和package进行配置,大致存在四种配置方式,每种配置方式都有自己的优缺点。下面我们逐一进行介绍。

在进行mybatis-cfg.xml文件中配置mapper前,我们仔细去看看这个xml文件的dtd文件。你可以从头文件中看出使用的是dtd文件,如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "https://mybatis.org/dtd/mybatis-3-config.dtd">

上面这就是mybatis-cfg.xml配置文件的头信息,其中https://mybatis.org/dtd/mybatis-3-config.dtd就是dtd的网络路径,你可以通过浏览器将这个DTD下载下来。

下面这段DTD就是验证mapper的,如下:

<!-- 配置SQL隐射文件,该元素下面可以存0个或多个mapper或package子元素 -->
<!ELEMENT mappers (mapper*,package*)>

<!--
用于映射一个SQL文件,简单告诉了 MyBatis去哪里找映射文件。
resource:使用基于classpath的相对资源路径。如:mybatis/config/TestMapper.xml
     url:使用文件系统绝对路径。如:file:///D:/TestMapper.xml
   class:使用Mapper接口来映射SQL文件。如:mybatis.config.TestMapper
-->
<!ELEMENT mapper EMPTY>
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>

<!--
通过配置包的方式,来批量映射。如下:
<package name="mybatis.config"/>
表示注册mybatis.config包下面的所有接口为Mapper
-->
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>

不知道上面这段DTD你是否看明白,如果看明白了,那么配置mapper的四种方式你就很清楚了,实例如下:

<mappers>
    <!-- 方式一:通过classpath相对路径进行指定 -->
    <mapper resource="mybatis/mapper/StudentMapper.xml"/>
    
    <!-- 方式二:通过文件系统的绝对路径进行指定 -->
    <mapper url="file:///D:/mybatisTest/src/mybatis/mapper/StudentMapper.xml"/>
    
    <!-- 方式三:通过mapper java接口的方式 -->
    <mapper class="mybatis.mapper.StudentMapper"/>
    
    <!-- 方式四:通过将指定包下面的所有java mapper接口进行映射的方式来实现 -->
    <package name="mybatis.mapper" />
</mappers>

到这里就介绍完了,你一定很清楚了吧!!!希望对你有帮助,谢谢支持。。。

点击学习 MyBatis 教程,了解更多的 MyBatis 知识!

我们常常听人说,人们因工作过度而垮下来,但是实际上十有八九是因为饱受担忧或焦虑的折磨。 —— 卢伯克.J.
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号