properties
- 定义属性及读取属性文件
settings
- 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为
typeAliases
- 类型别名是为 Java 类型设置一个短的名字
定义单个别名
批量别名定义
- 如果当前包类与子包类重名,会有异常
- 可以在类上使用注解 @Alias(“别名”)
typeHandlers
- 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型
- JDK1.8 之后实现全部的 JSR310 规范
- 日期时间处理上,我们可以使用 MyBatis 基于 JSR310(Date and Time API)
- 编写的各种日期时间类型处理器
- MyBatis3.4 以前的版本需要我们手动注册这些处理器,以后的版本都是自动注册的
Plugins
- 插件是 MyBatis 提供的一个非常强大的机制,MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用,通过插件来修改 MyBatis 的一些核心行为
Environments
- MyBatis 可以配置多种环境,比如开发、测试和生产环境需要有不同的配置
- 每种环境使用一个 environment 标签进行配置并指定唯一标识符
- 可以通过 environments 标签中的 default 属性指定一个环境的标识符来快速的切换环境
Environment子标签
transactionManager事务管理
Type 有以下取值
JDBC:使用 JDBC 的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。
MANAGED:不提交或回滚一个连接、让容器来管理事务的整个生命周期,ManagedTransactionFactory。
自定义:实现 TransactionFactory 接口,type = 全类名/别名。
dataSource数据源
type有以下取值
UNPOOLED:不使用连接池 UnpooledDataSourceFactory。
POOLED:使用连接池 PooledDataSourceFactory。
JNDI:在 EJB 或应用服务器这类容器中查找指定的数据源。
自定义:实现 DataSourceFactory 接口,定义数据源的获取方式。
实际开发
- 实际开发中我们使用 Spring 管理数据源
- 并进行事务控制的配置来覆盖上述配置
databaseIDProvider
MyBatis 可以根据不同的数据库厂商执行不同的语句。
可以能过 databaseIDProvider 标签来进行设置
<databaseIdProvider type="DB_VENDOR"> <property name="MYSQL" value="mysql"/> <property name="DB2" value="db2"/> <property name="Oracle" value="oracle" /> <property name="SQL Server" value="sqlserver"/> </databaseIdProvider>
mappers
<mapper resource=" "
:使用相对于类路径的资源
<mapper class=" "/>
:使用 mapper 接口类路径,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中
<package name=""/>
:指定包下的所有 mapper 接口,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中