SqlMapConfig.xml 讲解
mybatis的全局配置文件,配置内容如下:
properties(属性)
settings (全局配置参数)
typeAliases (类型别名)
typeHandlers (类型处理器)
objectFactory (对象工厂)
plugins (插件)
environments (环境集合属性对象)
environment (环境子属性对象)
transactionManager (事务管理)
dataSource (数据源)
mappers (映射器)
properties
- 需求:
将数据库连接参数单独配置在db.properties
中,那么只需要在SqlMapConfig.xml
中加载db.properties的属性值。
在SQLMapConfig.xml中就不需要对数据库进行硬编码了。
方便对数据库连接参数进行统一的管理,其他的xml可以引用该db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/order_manager?characterEncoding=utf-8
jdbc.username=root
jdbc.password=shuai@LE
- 在SqlMapConfig.xml中加载属性文件:
- Properties特性:
注意:mybatis 将按照下面的顺序来加载属性:
在properties 元素体内定义的属性首先被读取;
然后会读取Properties 元素中 resource 或 url加载的属性,它会覆盖已读取的同名属性;
最后读取parameterType 传递的属性,它会覆盖已读取的同名属性。
因此,通过 parameterType 传递的属性具有最高优先级,resource 或 url 加载的属性次之,最低优先级的是 Properties元素体内定义的属性。
建议不要在properties 元素体内添加任何属性值,只将属性值定义在Properties文件中。在properties文件中定义的属性名要有一定的特殊性,如:xxxx.xxxx.xxxx
settings全局参数配置
mybatis 框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载。。
需要的时候来配置,具体如何配置,请搜索。
typeAliases (别名) 重点
- 需求
在mapper.xml中,定义了很多的 statement,statement 需要parameterType指定输入参数的类型、需要 resultType 指定输出结果的映射类型。
如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,来方便开发。
- 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 |
data | Data |
decimal | BigDecimal |
bigdecimal | BigDecimal |
- 自定义别名
在SQLMapConfig.xml中配置:
单个别名的定义:
引用别名:
批量定义别名:(常用)
typeHandlers (类型处理器)
mybatis中通过 typeHandlers 完成jdbc类型和Java类型的转换。
mybatis自带的类型处理器基本上满足日常需求,一般不需要单独定义。
mappers (mapper映射配置)
- 单个映射文件加载:
<mapper resource=""/>
使用相对于类路径的资源
如:<mapper resource="sqlmap/User.xml" />
<mapper url=""/>
使用完全路径
如:<mapper url="file://D:...\User.xml" />
通过mapper接口加载
<mapper class=""/>
使用mapper接口类路径:
- 批量加载mapper(推荐使用)