Mybatis sqlMapConfig.xml中的mappers标签使用

 更新时间:2022年01月10日 10:38:00   作者:LovKee  
这篇文章主要介绍了Mybatis sqlMapConfig.xml中的mappers标签使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。

sqlMapConfig.xml中的mappers标签

mappers(映射配置)

1.1:通过resource加载单个映射文件

< !– 加载映射文件 –>
< mappers>
< !–通过resource方法一次加载一个映射文件 –>
< mapper resource=”sqlmap/User.xml”/>
< mapper resource=”mapper/UserMapper.xml”/>
< /mappers>

1.2:通过mapper接口加载单个映射文件

通过mapper接口加载单个映射配置文件

遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中;

上边规范的前提是:使用的是mapper代理方法

< mapper class=”com.mybatis.mapper.UserMapper”/>

按照上边的规范,将 mapper.java 和 mapper.xml 放在一个目录 ,且同名。

1.3:批量加载mapper(推荐使用)

批量加载映射配置文件,mybatis自动扫描包下面的mapper接口进行加载

遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中;

上边规范的前提是:使用的是mapper代理方法

< package name=”com.mybatis.mapper”/>

sqlmapconfig核心标签说明以及配置

对于MyBatis最核心的全局配置文件是 sqlmapConfig.xml 文件,其中包含了数据库的连接配置信息、Mapper 映射文件的加载路径、全局参数、类型别名等。

配置项详解

标签名称标签作用
configuration包裹所有配置标签,是整个配置文件的顶级标签。
properties属性,该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件中的其他配置均可引用此配置中的属性。
setting全局配置参数,用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启用命令空间等。
typeAliases类型别名,用来设置一些别名来代替 Java 的长类型声明,如 java.lang.int 变为 int,减少配置编码的冗余。
typeHandlers类型处理器,将 sql 中返回的数据库类型转换为相应 Java 类型的处理器配置。
objectFactory对象工厂,实例化目标类的工厂类配置。
plugins插件,可以通过插件修改 MyBatis 的核心行为,例如对语句执行的某一点进行拦截调用。
environments环境集合属性对象,数据库环境信息的集合。在一个配置文件中,可以有多种数据库环境集合,这样使 MyBatis 将 sql 同时映射至多个数据库。
environment环境子属性对象,数据库环境配置的详细配置。
transactionManager事务管理,指定 MyBatis 的事务管理器。
dataSource数据源,使其中的 type 指定数据源的连接类型,在标签对中可以使用 property 属性指定数据库连接池的其他信息。
mappers映射器,配置 sql 映射文件的位置,告知 MyBatis 去哪里加载 sql 映射配置。

配置示例

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration> 
    <!-- 1.properties属性引入外部配置文件 -->
    <properties resource="org/mybatis/example/config.properties">
        <!-- property里面的属性全局均可使用 -->
        <property name="username" value="admin"/>
        <property name="password" value="admin"/>
    </properties>
    <!-- 2.全局配置参数 -->
    <settings>
       <!-- 设置是否启用缓存 -->
       <setting name="cacheEnabled" value="true"/>
       <!-- 设置是否启用懒加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>   
    </settings>
    <!-- 3.别名设置 -->
    <typeAliases>
        <typeAlias alias="student" type="cn.com.mybatis.Student"/>
        <typeAlias alias="teacher" type="cn.com.mybatis.Teacher"/>
        <typeAlias alias="integer" type="java.lang.Integer"/>
    </typeAliases>
    <!-- 4.类型转换器 -->
    <typeHandlers>
        <!-- 一个简单类型转换器 -->
        <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
    </typeHandlers>
    <!-- 5.对象工厂 -->
    <objectFactory type="org.mybatis.example.ExampleObjectFactory">
        <!-- 对象工厂注入的参数 -->
        <property name="someProperty" value="100"/>
    </objectFactory>
    <!-- 6.插件 -->
    <plugins>
        <plugin interceptor="org.mybatis.example.ExamplePlugin">
            <property name="someProperty" value="100"/>
        </plugin>
    </plugins>
    <!-- 7.environments数据库环境配置 -->
    <!-- 和Spring整合后environments配置将被废除 -->
    <environments default="development">  
        <environment id="development"> 
            <!-- 使用JDBC事务管理 -->
            <transactionManager type="JDBC" />  
            <!-- 数据库连接池 -->
          <!-- 配置文件加载  这段代码可以在spring-config.xml配置 -->
      <!-- <bean id="configProperties"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:db.properties</value>
            </list>
        </property>
      </bean>  -->
            <dataSource type="POOLED">  
                <property name="driver" value="${db.driver}"/>  
                <property name="url" value="${db.url}"/>  
                <property name="username" value="$db.{username}"/>  
                <property name="password" value="${db.password}"/>  
            </dataSource>  
        </environment>  
    </environments>
    <!-- 加载映射文件 也可以将映射文件统一配置,这样就不用每个单独配置-->
    <mappers>  
        <mapper resource="sqlmap/UserMapper.xml"/>
        <mapper resource="sqlmap/OtherMapper.xml"/>
    </mappers>  
</configuration>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论