全局XML配置文件
MyBatis
配置文件的结构如下:
- configuration 配置
- properties 属性
- settings 参数设置
- typeAliases 类型别名
- typeHandlers 类型处理器
- objectFactory 对象工厂
- plugins 插件
- environments 环境集合
- environment 环境
- transactionManager 事务管理器
- dataSource 数据源
- databaseIdProvider 数据库厂商标识
- mappers 映射器
- environment 环境
常用标签配置
1. properties
properties标签可以读取properties配置文件,并引入到 MyBatis 的配置文件中。
可以通过子标签定义key/value。
例如:
|
|
其中的属性就可以在整个配置文件中使用key来替换需要动态配置的属性值。
例如:
|
|
3. typeAliases
类型别名,可以对JavaBean设置一个别名,用来减少完全限定名的冗余。
例如:
|
|
MyBatis
默认支持的类型别名如下,它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
别名 | 映射的类型 |
---|---|
_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 |
4. Mappers
映射器(Mappers)用于引入Mapper映射文件。
使用相对路径的方式引入
|
|
使用绝对路径的方式引入
|
|
使用Mapper接口的全限定类名(需要mapper接口与mapper映射文件名称相同,并且在同一个包下)
|
|
扫描指定包下的所有映射文件(需要mapper接口与mapper映射文件名称相同,并且在同一个包下)
|
|
Mapper映射文件
cache
缓存配置cache-ref
其他namespace缓存配置的引用resultType
结果集映射的类型resultMap
结果集映射MapparameterType
输入映射类型sql
可被引用的复用sql语句块insert
映射插入语句update
映射更新语句select
映射查询语句delete
映射删除语句
resultType
注意事项:
- 如果使用resultType进行结果集映射,则需要查询出的列名与映射的JavaBean属性名称一致。
- SQL语句中列名如果有别名,则列名为别名的名称。
- 如果查询的列名和JavaBean所映射的属性名全不一致,则映射的JavaBean对象为null。
- 如果查询的列名和JavaBean所映射的属性名少数不一致,则映射的JavaBean对象不为null,但只有名称一致的属性有值。
例如:
|
|
resultMap
注意事项:
- 使用resultMap进行结果集映射,不需要列名与映射的JavaBean属性名称一致。
- 使用resultMap进行结果集映射,需要先定义一个resultMap。
例如:
|
|
动态SQL
1. SQL片段
sql片段可以存储动态的sql语句,提高复用性。
|
|
2. if标签
|
|
3. where标签
|
|
4. foreach标签
foreach标签可以对一个集合进行遍历,通常是在构建一个in条件语句的时候使用。
|
|
5. bind标签
bind标签可以从OGNL表达式中创建一个变量并将其绑定到上下文。
|
|