第八章 MyBatis及MyBatis-Plus
第八章 MyBatis及MyBatis-Plus
1. 系统架构流程
执行过程:
- MyBatis配置:通过
mybatis-config.xml
文件进行全局配置,并在其中加载mapper XML文件。 - 构造SqlSessionFactory:基于配置信息创建会话工厂。
- 创建SqlSession:由会话工厂生成,用于数据库操作。
- Executor执行器接口:实现数据库操作,包括基本和缓存执行器。
- Mapped Statement对象:封装了MyBatis的配置信息及SQL映射信息。
- 输入参数映射:将Java对象映射至SQL语句中。
- 输出结果映射:将查询结果映射回Java对象。
2. 结果集映射
MyBatis支持XML配置和注解两种方式进行结果集映射。
- 使用XML的方式:
resultType
: 直接指定类名。resultMap
: 处理复杂映射关系(如一对一、一对多等)。
- 使用注解的方式:
- 使用
@Select
和@Result
配合定义查询与结果映射。
- 使用
3. Mapper传参
Mapper接口中的方法可以接受多种类型参数(基本数据类型、Java对象、Map等),并可以通过以下方式传递参数:
- 使用
@Param
注解指定参数名称。 - 不使用
@Param
时,参数名称应为param1
,param2
等。 - 对象或Map类型的参数可以直接使用其属性或key名称。
4. XML常用配置
- 数据源配置:连接数据库的基本信息。
- 映射器配置:指定映射器文件或接口的位置。
- 类型别名配置:简化映射器文件中的类型引用。
- 结果映射配置:定义SQL查询结果与Java对象间的映射关系。
- SQL查询配置:编写SQL查询语句及参数、返回值类型等。
- 参数传递配置:定义方法参数传递方式。
5. 缓存机制
MyBatis提供了两级缓存机制:
- 一级缓存(Local Cache):默认开启,作用于同一个SqlSession内。
- 二级缓存(Second Level Cache):跨SqlSession共享数据,默认关闭,需手动配置启用。
6. 分页插件
常用的分页插件有PageHelper和MyBatis Plus,它们都基于MyBatis拦截器实现。使用示例:
-
PageHelper:
PageHelper.startPage(页号, 页大小);
-
MyBatis Plus:
IPage<User> userPage = userService.page(new Page<>(页号, 页大小));
7. MyBatis-Plus常用API
MyBatis Plus扩展了MyBatis的功能,提供了一系列便捷的API来简化数据访问层的开发。具体的API列表请参考官方文档或相关资料链接。
扩展阅读
- MyBatis 中文网文档
- MyBatis Plus 官方文档