欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis——解析SqlMapConfig.xml文件(四)

程序员文章站 2022-04-30 10:00:47
...

上一篇文章我们讲解了《Mybatis—开发Dao方法(三)》下面我们继续来解析一下SqlMapConfig.xml文件。

【配置内容】

mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:
1、properties(属性)
2、settings(全局配置参数)
3、typeAliases(类型别名)
4、typeHandlers(类型处理器)
5、objectFactory(对象工厂)
6、plugins(插件)
7、environments(环境集合属性对象)
(1)environment(环境子属性对象)
(1.1) transactionManager(事务管理)
(1.2)dataSource(数据源)

<!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池,由mybatis管理-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

8、mappers(映射器)

【properties属性】

1、需求

   将数据库连接参数单独配置在db.properties中,方便对参数进行统一管理,其它xml可以引用该db.properties,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql

在sqlMapConfig.xml加载属性文件:

<!-- 加载属性文件 -->
    <properties resource="db.properties">
        <!--properties中还可以配置一些属性名和属性值  -->
        <!-- <property name="jdbc.driver" value=""/> -->
    </properties>

2、properties特性:

(1)注意: MyBatis 将按照下面的顺序来加载属性:
在 properties 元素体内定义的属性首先被读取。
然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
(2)建议:
不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。
在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

【settings全局参数配置】

mybatis框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载。。
全局参数将会影响mybatis的运行行为。

<!-- 全局配置参数,需要时再设置 -->
    <settings>
        <!-- 打开延迟加载 的开关 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 将积极加载改为消极加载即按需要加载 -->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 开启二级缓存 -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

Mybatis——解析SqlMapConfig.xml文件(四)
Mybatis——解析SqlMapConfig.xml文件(四)
Mybatis——解析SqlMapConfig.xml文件(四)

【typeAliases(别名)】

1、需求

(1)在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。
(2)如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

2、Mybatis默认支持别名

Mybatis——解析SqlMapConfig.xml文件(四)

3、自定义别名

(1)单个别名定义

Mybatis——解析SqlMapConfig.xml文件(四)

(2)批量定义别名(常用)

Mybatis——解析SqlMapConfig.xml文件(四)

【typeHandlers(类型处理器)】

mybatis中通过typeHandlers完成jdbc类型和java类型的转换。
通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.
mybatis支持类型处理器:
Mybatis——解析SqlMapConfig.xml文件(四)

【mappers(映射配置)】

1、通过resource加载单个映射文件

    <!--通过resource方法一次加载一个映射文件 -->
    <mapper resource="mapper/UserMapper.xml"/> 

2、通过mapper接口加载单个mapper

        <!-- 通过mapper接口加载单个 映射文件
        遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
        上边规范的前提是:使用的是mapper代理方法
         -->
        <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> 

Mybatis——解析SqlMapConfig.xml文件(四)

3、批量加载mapper(推荐使用)

     <!-- 批量加载mapper
        指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
        遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
        上边规范的前提是:使用的是mapper代理方法
         -->
        <package name="cn.itcast.mybatis.mapper"/>

好了小编今天的总结就到这里了。。欢迎关注下面的内容《Mybatis—输入输出映射》