天天看点

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

Mybatis 全局配置文件中的标签详解:

顺序约束:自上而下

注意:标签也是有顺序的 顺序错误会报错。

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

(一):全局配置文件头部

<?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 标签

表示对整个MyBatis框架进行配置

< configuration > < /configuration >

(三):properties标签

属性resource 和 url

用来引用外部properties配置文件内容

属性:resource 引用类路径下的资源 ;url:引入网络路径或者磁盘路径下的资源

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

(四):Settings

settings标签可以进行一些公共的设置,比较重要的属性说明:

cacheEnabled

: 默认是true。 用于开启或关闭全部mapper的缓存行为。

lazyLoadingEnabled

:默认是false。用于开启或关闭懒加载(延迟加载)

useColumnLabel

: 默认是true。

defaultStatementTimeout

:默认未设置(支持正整数)。数据库超时设置。

mapUnderscoreToCamelCase

:默认是false。 A_COLUMN -> aColumn

  • 开启 mapUnderscoreToCamelCase 可实现数据库的字段值 与实体类 值匹配 避免空值
<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
           
  • 如何设置输出SQL语句:
<settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
           

关于日志,都有级别:

(低)

TRACE

->

DEBUG

->

INFO

->

ERROR

->

FATAIL

(高)

maven环境下导依赖:

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

在类路径下创建名为

log4j.properties

的配置文件:

# Global logging configuration
log4j.rootLogger=TRACE, stdout
# 细化到某个包下,某个类中的日志级别
log4j.logger.com.example.dao.UserMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
           

结果显示:

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

(五):typeAliases

内置别名:

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

所谓的别名,就是简化我们的配置的书写。有了别名以后,不需要再写 包名+ 类名 ,直接写别名。java.lang.Integer - int/integer

<select id="count" resultType="integer">
    select count(1) from t_user
</select>
           

我们自己的类,要想简化配置,就需要使用

typeAliases

进行别名的注册。

<typeAliases>
        <typeAlias type="com.example.domain.User" alias="user"/>
    </typeAliases>
           

之前的做法:

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

进行注册:

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

注册成功后就可以使用别名替代

Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

(六):typeHandlers

使用自定义的类型处理器:可以修改枚举类保存获取数据库的值

<typeHandlers>
    <typeHandler handler="typehandler.DiyTypeHandler" javaType="entity.Status"/>
</typeHandlers>
           

(七)plugins 【插件配置】

可以拦截四大对象 Executor之类的 动态代理可以实现额外操作

举例:分页插件:

<plugins>
       <plugin interceptor="com.github.pagehelper.PageInterceptor">
          <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
          <property name="param1" value="value1"/>
      </plugin>
</plugins>
           

(八)environments 环境变量标签

1.在environments 里可指定多个环境即定义多个environment 标签

2.属性default可以指定某种环境 如test测试和development开发快速切换 default 不指定默认是第一个环境。

3.enviroment 配置一个具体的环信息 id代表当前标签唯一标识

4.transactionManager 的type 用于说明事务管理的类型:JDBC | MANAGED

5.dataSource:的type 说明 数据源 UNPOOLED | POOLED | JNDI

<!--environment可以指定多个环境即定义多个environment 标签  default 不指定默认**是第一个环境-->
    <environments default="aa">
        <environment id="aa">
            <!-- type 用于说明事务管理的类型:JDBC|MANAGED -->
            <transactionManager type="JDBC"></transactionManager>
            <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

用于多数据库支持。 我们知道不同的数据库,完成相同操作时,SQL语句有可能是不同的。

比如说分页:

  • mysql 中使用

    limit m , n

  • oracle 中使用

    ROWNUM

可以配置两个进行解决:

<environments default="dev_mysql">
    <environment id="dev_mysql">
        <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="dev_oracle">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${orcl.driver}" />
            <property name="url" value="${orcl.url}" />
            <property name="username" value="${orcl.username}" />
            <property name="password" value="${orcl.password}" />
        </dataSource>
    </environment>
</environments>

    <databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle" />
    </databaseIdProvider>
    
           
Mybatis 全局配置文件 (标签详解)Mybatis 全局配置文件中的标签详解:

(十):mappers

作用:将Mapper.xml文件中的sql映射绑定到全局配置中

<!-- 管理 映射配置文件 UserMapper.xml -->
    <mappers>
        <mapper resource="UserMapper.xml"></mapper>
    </mappers>
           

继续阅读