Mybatis全局配置文件

一、mybatis的约束文件:规定xml中标签的语法规则

"http://mybatis.org/dtd/mybatis-3-config.dtd"

二、用于引入外部properties文件:

<properties resource="dbConfig.properties"></properties>
Mybatis全局配置文件

其中有两种引入方式:

1、resource:引入类路径下的资源

2、url:引入网络路径下的资源


三、设置重要项目:settings包含很多重要设置项目

<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

四、别名处理:为某个类指定一个其他的名字

Mybatis全局配置文件

 

<typeAliases>
    <!--
    typeAlias:为某个Java类型起别名
    type:指定要起的别名的类型名,默认是类名小写employee
    alias:指定别名名字
    -->
    <typeAlias type="bean.Employee"/>
</typeAliases>
Mybatis全局配置文件

为多个类批量取别名:

<package name="bean"/>

name:为包名

也可以直接在实体类上注解

Mybatis全局配置文件

最好写全类名,找起来方便

五、类型处理器:架起数据库类型和Java类型一一映射的桥梁

六、插件:可以允许我们拦截sql语句执行的一些核心步骤,利用插件进行拦截的——拦截其实就是动态代理

Executor:执行器

ParameterHandler:参数处理器

ResultSetHander:结果集处理器

StatementHandler:sql语句处理器

后面细说------

七、环境

4、配置mybatis运行环境,mybatis可以配置多种环境。default:指定使用某种环境(开发、测试之类)
environment:配置一个具体的环境信息。id代表当前环境的唯一标识
    必须有这两个标签:transactionManager:事务管理器。
                            type:事务管理器的类型 JDBC(JdbcTransactionFactory) 或 MANAGER(ManagerTransactionFactory)
                            自定义事务管理器:实现TransactionFactory接口,type指定为全类名
            dataSource:数据源
                type:POOLED(UnpooledDataSourceFactory)、
                      UNPOOLED(PooledDataSourceFactory)、
                      JNDI(JndiDataSourceFactory)
             自定义数据源:实现DataSourceFactory接口,type是全类名         
-->
<environments default="development">
    <environment id="development">
        <!--type=“JDBC”代表使用JDBC的提交和回滚来管理事务-->
        <transactionManager type="JDBC"/>

        <!--mybatis提供了3种数据源类型,分别是POOLED、UNPOOLED、JNDI-->
        <!--POOLED表示支持JDBC数据源连接池-->
        <!--UNPOOLED表示不支持数据源连接池-->
        <!--JNDI表示支持外部数据源连接池-->
        <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>
八、databaseIdProvider:支持多数据厂商

<databaseIdProvider type="DB_VENDOR">
    <!--为不同的数据库厂商起别名-->
    <property name="MySQL" value="mysql"/>
    <property name="Oracle" value="oracle"/>
    <property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>

在mapper映射文件中指定操作哪种数据库

Mybatis全局配置文件

使用:(数据库切换)

Mybatis全局配置文件

九、mapper标签:将sql映射文件注册到全局配置文件中

<mappers>
    <!--注册方式1,一个一个的配置-->
    <mapper resource="mapper/EmployMapper.xml"/>
    <!--注册方式2,自动包内的mapper接口与配置文件-->
    <!--<package name="mapper"/>-->
</mappers>

整体:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE configuration
        PUBLIC "-//mapper.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--
    1、mybatis可以使用properties标签来引入外部properties配置文件的内容
    resource:引入类路径下的资源
    url:引入网络路径或磁盘路径下的资源
    -->
    <properties resource="dbConfig.properties"></properties>
    <!--
    2、settings包含了很多重要的设置项目
    setting:用来设置每一个设置项
    name:设置项的名字
    value:设置项的取值
    -->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!--3、typeAliases别名处理器:可以为我们的Java类型起别名
    别名不区分大小写
    -->
    <typeAliases>
        <!--
        1)、typeAlias:为某个Java类型起别名
        type:指定要起的别名的类型名,默认是类名小写employee
        alias:指定别名名字
        -->
        <typeAlias type="bean.Employee"/>
        <!--
        2)、package批量起别名:为某个包下的所有类起别名
        name:指定报名(为当前包以及下面的所有后代的包每个类都起一个默认别名)
        -->
        <package name="bean"/>
        <!--3)、批量其别名也可以使用@Alias注解在某个类上-->
    </typeAliases>

    <!--
    4、配置mybatis运行环境,mybatis可以配置多种环境。default:指定使用某种环境(开发、测试之类)
    environment:配置一个具体的环境信息。id代表当前环境的唯一标识
        必须有这两个标签:transactionManager:事务管理器。
                                type:事务管理器的类型 JDBC(JdbcTransactionFactory) 或 MANAGER(ManagerTransactionFactory)
                                自定义事务管理器:实现TransactionFactory接口,type指定为全类名
                dataSource:数据源
                    type:POOLED(UnpooledDataSourceFactory)、
                          UNPOOLED(PooledDataSourceFactory)、
                          JNDI(JndiDataSourceFactory)
                 自定义数据源:实现DataSourceFactory接口,type是全类名
    -->
    <environments default="oracle">
        <environment id="mysql">
            <!--type=“JDBC”代表使用JDBC的提交和回滚来管理事务-->
            <transactionManager type="JDBC"/>
            <!--mybatis提供了3种数据源类型,分别是POOLED、UNPOOLED、JNDI-->
            <!--POOLED表示支持JDBC数据源连接池-->
            <!--UNPOOLED表示不支持数据源连接池-->
            <!--JNDI表示支持外部数据源连接池-->
            <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="oracle">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${oracle.driver}"/>
                <property name="url" value="${oracle.url}"/>
                <property name="username" value="${oracle.username}"/>
                <property name="password" value="${oracle.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--
    5、databaseIdProvider:支持多数据库厂商的
    type="DB_VENDOR":VendorDatabaseIdProvider
        作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能够根据数据库厂商的标识来执行不同的sql
        MySQL、Oracle、SQL Server,、、、、、
    -->
    <databaseIdProvider type="DB_VENDOR">
        <!--为不同的数据库厂商起别名-->
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle"/>
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>


    <!--注册Mapper映射文件方式-->
    <!--
    6、mappers:将sql映射文件注册到全局配置文件中
    mapper:注册一个sql映射
        注册配置文件
        resource:引用类路径下的sql映射文件
        url:引用网络路径或磁盘路径下的sql映射文件
        注册接口
        class:引用(注册)接口
        1、有sql映射文件,且映射文件必须和接口同名,并且放在同一目录下
        2、没有sql映射文件,所有sql都是利用注解写在接口上
        推荐写sql映射文件
    package:批量注册
    -->
    <mappers>
        <!--注册方式1,一个一个的配置-->
        <mapper resource="mapper/EmployMapper.xml"/>
        <!--注册方式2,自动包内的mapper接口与配置文件-->
        <!--<package name="mapper"/>-->
    </mappers>
</configuration>