SqlMapConfig

SqlMapConfig.xml中配置的内容和顺序:

  • properties(属性)
  • settings(全局配置参数)
  • typeAliases(类型别名)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境集合属性对象)
    • environment(环境属性对象)
      • transactionManager(事务管理)
      • dataSource(数据源)
  • mappers(映射器)

properties(属性)

将数据库连接参数单独配置在db.properties中,可以避免xml硬编码,方便以后更改以及其他文件使用。

1
2
3
4
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:////mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123

在sqlMapConfig.xml中加载属性文件:

1
2
3
4
<properties resource="db.properties">
<!--properties中还可以配置一些属性名和属性值 -->
<!-- <property name="jdbc.driver" value=""/> -->
</properties>

Mybatis加载资源属性顺序:(后面加载的会覆盖前面)

  1. properties元素体内定义的属性
  2. properties元素中resource或url加载的属性
  3. parameterType传递的属性

settings(全局参数配置)

Mybatis框架运行时的一些参数。比如:二级缓存、延迟加载等
官方文档:mybatis-settings

typeAliases(类型别名)

parameterType 指定输入参数的类型

resultType 指定输出参数的映射类型
每次都要输入全名路径太过于麻烦,类型别名简化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 别名定义 -->
<typeAliases>

<!-- 针对单个别名定义
type:类型的路径
alias:别名
-->
<!-- <typeAlias type="Pojo.User" alias="user"/> -->
<!-- 批量别名定义
指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)
-->
<package name="Pojo"/>

</typeAliases>

具体参考官网文档:typeAliases

Mybatis默认支持的别名

(8大基本类型及其包装类+Data+大数类型)
别名 映射的类型
_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

typeHandlers(类型处理器)

mybatis中通过typeHandlers完成jdbc类型和java类型的转换。
参考:typeHandlers

mappers(映射配置)

1
2
3
4
5
6
7
8
9
10
11
12
<!--通过resource方法一次加载一个映射文件 -->
<mapper resource="mapper/UserMapper.xml"/>

<!--通过mapper接口加载单个mapper-->
<mapper class="mapper.UserMapper"/>

<!-- 批量加载mapper(推荐使用)
指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
上边规范的前提是:使用的是mapper代理方法
-->
<package name="mapper"/>