总览
# properties 标签
mybatis 可以使用 properties 来引入外部 properties 配置文件的内容
如:
resource
url
# settings 标签
settings 包含了很多重要的设置项
# typeAliases 标签 + 内置别名
<mark>推荐不起别名:使用全类名</mark>
别名处理器,可以为我们的java类型起别名
<mark>别名不区分大小写</mark>(MySQL的原因)
-
typeAlias:为某个 java 类型起别名
type:指定要起别名的类型<mark>全类名</mark>;<mark>默认别名就是类名小写:employee</mark>
alias:指定新的别名
-
package:为某个包下所有类批量起别名
name:指定包名(为当前包以及下面<mark>所有的后代包</mark>的每一个类都起一个别名(类名小写<mark>mysql原因,不区分大小写</mark>))
-
@Alias
批量起别名的情况下,使用 @Alias 注解为某个类型指定新的别名
# typeHandlers 标签
需要理解 mybatis 原理
JDK1.8后,添加了JSR310
# plugins 标签
需要理解 mybatis 原理 (后面讲)
- Executor
- ParameterHandler
- ResultSetHandler 结果集处理器
- StatementHandler
# environments 标签
环境配置
mybatis 可以配置多种环境
environments:环境梦,mybatis可以配置多种环境,default指定使用某种环境,可以达到快速切换环境
environment:配置一个具体的环境信息,必须有两个标签,id代表当前环境的唯一表示
- transactionManager:<mark>事务</mark>管理器
- type:事务管理器的类型;JDBC|MANAGED ⇐ <mark>其实都是别名</mark>
JDBC ⇒JdbcTransactionFactory
MANAGED ⇒ManagedTransactionFactory
或者自定义:实现TransactionFactory
接口 , type 指定为全类名
- type:事务管理器的类型;JDBC|MANAGED ⇐ <mark>其实都是别名</mark>
- dataSource 数据源
type:数据源类型- UNPOOLED (
UnpooledDataSourceFactory
) 不使用连接池 - POOLED(
PooledDataSourceFactory
)使用连接池 <mark>默认使用</mark> - JNDI (
JndiDataSourceFactory
) - 自定义:实现
DataSourceFactory
type 是全类名
- UNPOOLED (
# databaseIdProvider
一致性
支持多数据库厂商的
同样,别名在 configuration 类中查找
type="DB_VENDOR" , VendorDatabaseIdProvider
作用就是得到数据库厂商的表示(驱动),
mybatis就能根据数据库厂商表示来执行不同的sql;
实际调用的方法?
java Connection 类 有 getMetaData() 方法,得到 metaData
里面的 getDataBAseProductName 方法 可以获取数据库厂商的名
# mappers
将 sql 映射注册到全局配置中
注册配置文件
resource
:引用类路径下的 sql 映射文件
如:mybatis/mapper/EmployeeMapper.xml
url
:引用网络路径或者磁盘路径下的sql映射文件
如:file:///var/mappers/AutorMapper.xml
引用(注册)接口
- class:
<mark>注意:</mark>
1、如果有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下【<mark>推荐</mark>】
2、 如果没有sql映射文件,所有的sql都是利用注解写在接口上
3、批量注册
# 其他标签
- 如:objectFactory
- 等。。。
- 通常 不怎么改/ 用
插曲
dtd