Mybatis入门到精通-Mybatis配置文件详解

6.mybatis配置文件详解

首先看一下该全局配置文件中都有哪些能够配置的东西:java

配置内容 做用
<properties> 用来加载属性文件
<settings> 用来设置全局参数
<typeAliases> 用来设置类型的别名
<typeHandlers> 用来设置类型处理器
<objectFactory> 用来设置对象工厂
<plugins> 用来设置插件
<environments> 用来设置mybatis的环境
<mappers> 用来配置映射文件

  从前面的博文中能够看出,<environments>是用来配置mybatis的环境的,在和Spring整合前是由mybatis本身管理的,可是和Spring整合后,这些配置都将被废弃掉,<environments>部分在前面已经有提到过,这里就再也不赘述了。而后objectFactory和plugins通常咱们不用,因此在这里就不总结了,<typeHandlers>类型处理器是mybatis中用来完成jdbc类型和java类型之间转换的,mybatis默认支持的类型处理器基本够咱们使用了,通常不须要自定义。这里主要来总结一下剩下的几个配置的用法。数据库

6.1 properties加载属性文件

  咱们以前链接数据库的一些配置都是在<environments>中写死的,在实际开发中确定不是这样子的,咱们须要将数据库链接参数单独配在jdbc.properties文件中,而后在mybatis.xml中加载jdbc.properties的属性值便可,这就用到了<properties>了。即:缓存

<!-- 加载properties文件-->
    <properties resource="jdbc.properties"></properties>
    <!-- 配置mybatis的环境信息 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事务控制,由mybatis进行管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源,采用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>

<properties>内部还能够定义属性值:<property name="" value=""/>,在property中定义的属性也能够被<evironments>中来加载.mybatis

6.2 settings全局参数设置

mybatis框架在运行时能够调整一些运行参数,好比:开启二级缓存、开启延迟加载等,有个settings全局参数配置文档:   这些全局参数的配置会影响mybatis的运行行为,须要的时候再设置,不须要的时候不能乱设置,这里就不作详细介绍了,等后面用到的时候我再针对相应的作一下介绍。app

6.3 typeAliases类型别名

  这是配置中的一个重点,咱们知道,在mapper.xml中定义了不少的statement,statement须要parameterType来指定输入参数的类型、须要resultType来指定输出结果的类型。若是在指定类型时输入类型全路径,有时候会很长,不方便进行开发,那么咱们就能够能够针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中经过别名<typeAliases>来定义,方便开发。框架

mybatis有默认支持的一些别名,通常基本类型都有别名,以下:   可是针对pojo的须要咱们自定义别名了,好比咱们将本身定义的User对象取个别名为user:url

<typeAliases>
    <typeAlias type="com.qfedu.entities.User" alias="user"></typeAlias>
</typeAliases>

可是问题来了,若是工程中有不少pojo,那岂不是完蛋……这得定义多少个啊,因此mybatis帮咱们解决了这个问题,它提供了批量别名的定义,以下:spa

<typeAliases>
    <package name="com.qfedu.entities"></package>
</typeAliases>

6.4.Mappers映射配置

咱们前面使用到的<mappers>标签是经过resource方法加载单个映射文件的,即:插件

<mappers>
    <!-- 使用资源的路径 -->
    <mapper resource="com/qfedu/mapper/UserMapper.xml"/>
</mappers>

除了resource外,也能够用代理

  • url来加载,只不过url指定的是绝对路径,硬盘中的路径;

  • 经过mapper接口来加载。经过mapper接口来加载的话要遵循一个规范:

    • 规范:须要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中 这个规范的前提是:使用的是mapper代理的方法

<mappers>
    <mapper class="com.qfedu.mapper.UserMapper"></mapper>
</mappers>

​ 此时UserMapper.java要和UserMapper.xml在同一目录。

  • 咱们只要指定mapper接口的包名,mybatis自动扫描包下面全部的mapper接口进行加载

<mappers>
    <mapper class="com.qfedu.mapper"></mapper>
</mappers>
相关文章
相关标签/搜索