MyBatis学习存档(2)——核心配置文件

一、xml节点结构

configuration为根节点

properties 可以配置在Java 属性配置文件中

settings 修改 MyBatis 在运行时的行为方式

typeAliases 为 Java 类型命名一个别名(简称)

typeHandlers 类型处理器

objectFactory 对象工厂

plugins 插件

environments 环境

environment 环境变量

transactionManager 事务管理器

dataSource 数据源

mappers 映射器

二、各节点作用

2.1 properties节点

配置properties元素有两种方式

通过外部指定的方式(database.properties),实现动态配置

直接通过其子节点property配置,实现动态配置

1、通过外部指定的方式(database.properties),实现动态配置

配置properties的resource属性

<properties resource="database.properties"/>      
......
<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>

2、直接通过其子节点property配置,实现动态配置

<properties>
        <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver:///house"/>
        <property name="user" value="sa"/>
        <property name="password" value=“123"/>
</properties>
......
<dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${user}"/>
        <property name="password" value="${password}"/>
</dataSource>

3、若两种方式同时都用了,resource属性值的优先级高于property子节点配置的值

2.2 settings节点

由多个setting节点组成,用来修改MyBatis运行时的行为方式,主要是MyBatis的一些全局配置属性的设置,具体如下:

设置项 描述 允许值 默认值
cacheEnabled 对在此配置文件下的所有cache 进行全局性开/关设置 true | false true
lazyLoadingEnabled 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载 true | false true
autoMappingBehavior MyBatis对于resultMap自动映射匹配级别 NONE | PARTIAL | FULL PARTIAL
……(9个) …… …… ……

2.3 typeAliases节点

类型别名。仅仅只关联XML配置,简写冗长的Java类名

有2种配置方式:

<typeAliases>
    <typeAlias alias="Users" type="com.pojo.Users"/>
</typeAliases>
<typeAliases>
    <package name ="com.pojo" />
</typeAliases>

2.4 environments节点

表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上

子节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)

虽然可以配置多个运行环境,但是每个SqlSessionFactory 实例只能选择一个运行环境。即:每个数据库对应一个SqlSessionFactory实例

<environments default="development"><!-- 默认的运行环境 ID -->
    <environment id="development"><!-- 运行环境 ID -->
        <transactionManager type="JDBC"/><!-- 事务管理器配置 -->
        <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>
    <environment id="test">
    ……
    </environment>
</environments>

其中,transactionManager的可填值为JDBC或者MANAGED(托管),通常使用JDBC

dataSource有三种内建的数据源类型,分别是UNPOOLED | POOLED | JNDI,通常使用POOLED

2.5 mappers节点

用来定义SQL映射语句,须在配置中引用mapper映射文件,配置方式有2种:

方式一:使用类资源路径获取资源

<!-- 将mapper映射文件加入到系统核心配置文件中 -->
<mappers>
    <mapper  resource="com/mapper/UsersMapper.xml"/>
</mappers>

方式二:使用包名自动获取资源

<mappers>
    <package name="com.mapper"/>
</mappers>
原文地址:https://www.cnblogs.com/s1165482267/p/8032573.html