MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

总览

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# properties 标签

mybatis 可以使用 properties 来引入外部 properties 配置文件的内容
如:
resource
url

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# settings 标签

settings 包含了很多重要的设置项

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# typeAliases 标签 + 内置别名

推荐不起别名:使用全类名
别名处理器,可以为我们的java类型起别名

别名不区分大小写(MySQL的原因)

默认别名
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

  • typeAlias:为某个 java 类型起别名
    type:指定要起别名的类型全类名默认别名就是类名小写:employee
    alias:指定新的别名
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

  • package:为某个包下所有类批量起别名
    name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个别名(类名小写mysql原因,不区分大小写))
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

  • @Alias
    批量起别名的情况下,使用 @Alias 注解为某个类型指定新的别名
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# typeHandlers 标签

需要理解 mybatis 原理

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
JDK1.8后,添加了JSR310

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)


# plugins 标签

需要理解 mybatis 原理 (后面讲)

  • Executor
  • ParameterHandler
  • ResultSetHandler 结果集处理器
  • StatementHandler

# environments 标签

环境配置
mybatis 可以配置多种环境

environments:环境梦,mybatis可以配置多种环境,default指定使用某种环境,可以达到快速切换环境
environment:配置一个具体的环境信息,必须有两个标签,id代表当前环境的唯一表示

  • transactionManager:事务管理器
    • type:事务管理器的类型;JDBC|MANAGED ⇐ 其实都是别名
      JDBC ⇒ JdbcTransactionFactory
      MANAGED ⇒ ManagedTransactionFactory
      或者自定义:实现 TransactionFactory 接口 , type 指定为全类名
      MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
      MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
  • dataSource 数据源
    type:数据源类型
    • UNPOOLED (UnpooledDataSourceFactory) 不使用连接池
    • POOLED(PooledDataSourceFactory)使用连接池 默认使用
    • JNDI (JndiDataSourceFactory
    • 自定义:实现 DataSourceFactory type 是全类名
      MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
      MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# databaseIdProvider

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)


一致性
支持多数据库厂商的
同样,别名在 configuration 类中查找
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
type="DB_VENDOR" , VendorDatabaseIdProvider
作用就是得到数据库厂商的表示(驱动),
mybatis就能根据数据库厂商表示来执行不同的sql;

实际调用的方法?
java Connection 类 有 getMetaData() 方法,得到 metaData
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
里面的 getDataBAseProductName 方法 可以获取数据库厂商的名
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# mappers

将 sql 映射注册到全局配置中

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

注册配置文件

  • resource :引用类路径下的 sql 映射文件
    如:mybatis/mapper/EmployeeMapper.xml
  • url:引用网络路径或者磁盘路径下的sql映射文件
    如:file:///var/mappers/AutorMapper.xml

引用(注册)接口

  • class:
    注意:
    1、如果有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下【推荐
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
    2、 如果没有sql映射文件,所有的sql都是利用注解写在接口上
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
    3、批量注册
    MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)

# 其他标签

  • 如:objectFactory
  • 等。。。
  • 通常 不怎么改/ 用

插曲

dtd

MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)
MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)MyBatis - 3 - 全局配置文件(properties、typeAliases、environments、databaseIdProvider、mappers...)