这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战
1 | xml复制代码<!--配置--> |
Properties
属性可以在外部文件进行配置,通过 <properties resource="jdbc.properties"/>
引入外部文件
1 | properties复制代码url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 |
1 | xml复制代码<properties resource="jdbc.properties"/> |
也可以在 properties 元素的子元素中设置,并可以进行动态替换
1 | xml复制代码<!--环境配置--> |
Settings
常用的设置
设置名 | 描述 | 有效值 | 默认值 |
---|---|---|---|
cacheEnabled | 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。 | true | false |
lazyLoadingEnabled | 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 | true | false |
logImpl | 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 | SLF4J | LOG4J |
一个配置完整的 settings 元素的示例如下:
1 | xml复制代码<settings> |
TypeAliases
类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
- 扫描类使用别名
1 | xml复制代码<typeAliases> |
当这样配置时,User
可以用在任何使用pojo.User
的地方。
2. 扫描包
1 | xml复制代码<typeAliases> |
每一个在包 pojo
中的 JavaBean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。若有注解,则别名为其注解值。
3. 在类上使用注解
1 | java复制代码import org.apache.ibatis.type.Alias; |
下面是一些为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格。
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
Environments
配置 MyBatis 的多套运行环境,将 SQL 映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过 default 指定),通过 id 进行区别
1 | xml复制代码<!--环境配置--> |
子元素节点:environment
- transactionManager 事务管理器
1 | xml复制代码<!-- 语法 --> |
- dataSource 数据源
使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。数据源是必须配置的。有三种内建的数据源类型:
1 | xml复制代码type="[UNPOOLED|POOLED|JNDI]") |
* unpooled:这个数据源的实现只是每次被请求时打开和关闭连接。
* **pooled**:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得并发 Web 应用快速响应请求的流行处理方式。
* jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
Mapper
Mapper 映射器告诉 MyBatis 到哪里去找映射文件
- 使用相对于类路径的资源引用
1 | xml复制代码<mappers> |
- 类名
1 | xml复制代码<!--需要配置文件名称和接口名称一致,并且位于同一目录下--> |
- 包名
1 | xml复制代码<!--需要配置文件名称和接口名称一致,并且位于同一目录下--> |
Mapper 文件
1 | xml复制代码<?xml version="1.0" encoding="UTF-8" ?> |
- namespace 的命名必须跟某个接口同名
- 接口中的方法与映射文件中sql语句id应该一一对应
- namespace命名规则 : 包名+类名
本文转载自: 掘金