配置文件用于配置 MyBatis,由 configuration 标签包裹。
MyBatis 配置文件中标签的顺序:
properties、settings、typeAliases、typeHandlers、objectFactory、objectWrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers
基本配置
properties
properties 标签用于引入 properties 文件。
1 | <properties resource="jdbc.properties" /> |
typeAliases
typeAliases 用于设置多个类型的别名,可以包含 typeAlias 标签和 package 标签。
- typeAlias 标签用于设置某个类型的别名,有两个属性 type 和 alias,用于指定类型和别名(不设置别名,则使用默认的别名,即类名且不区分大小写)。
- package 标签,以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写。
1 | <typeAliases> |
MyBatis 中已经为常用类型设置了类型别名:
- java.lang.Integer –> int|integer
- int –> _int|_integer
- Map –> map
- List –> list
- 。。。。。。
environments
environments 用于设置多个数据库连接配置,可以指定 default 环境 id。
environment 标签用于配置某个具体环境,属性 id 表示连接数据库的环境的唯一标识,不能重复。包含以下标签:
- transactionManager 标签,设置事务管理方式。有属性 type,可选 JDBC 或者 MANAGED。
- JDBC 表示当前环境中,执行 SQL 时,使用的是 JDBC 中原生的事务管理方式,事务的提交或回滚需要手动处理。
- MANAGED 表示被管理,例如 Spring。
- dataSource 标签,表示配置数据源。有属性 type 表示数据源类型,可选值为 POOLED(使用连接池)/UNPOOLED(不使用连接池)/JNDI(使用上下文中的数据源)。可以包含 property 标签用于配置数据库驱动、连接地址、用户名、密码。
1 | <environments default="dev"> |
mappers
mappers 用于引入映射文件,可以包含 mapper 或者 package 标签。
- mapper 标签,可以指定 resource 属性(或者 url、class 属性),用于引入 mapper 映射文件。
- package 标签,以包为单位引入映射文件,但是有两个要求:(1)mapper 接口所在的包要和映射文件所在的包一致(2)mapper 接口要和映射文件的名字一致。
1 | <mappers> |
其他配置
typeHandlers
typeHandlers 用于定义多个自定义类型转换,内嵌 typeHandler 标签。比如要把 java Date 类型转为 int 类型存储在数据库中,就需要使用自定义的类型转换。定义方式如下:
- 首先编写转换类,转换类需要实现 TypeHandler 接口或者继承 BaseTypeHandler 类。
- 在配置文件中注册 typeHandler 即可。
1 | <typeHandlers> |
plugins
plugins 标签可以引入第三方插件,进行功能扩展。
分页插件
pageHelper 用于分页。
1 | <plugins> |
使用方法:
- 启用分页功能:
PageHelper.startPage(int pageNum, int pageSize)
启用分页。- pageNum:页码数。
- pageSize:每页的数据数量。
- 获取分页信息:在查询获取 List 集合后,使用
PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)
获取分页信息。- list:分页后的数据。
- navigatePages:导航分页的页码数。