Mybatis执行流程
总览
- 读取MyBatis配置文件:mybatis-config.xml加载运行环境和映射文件
- 构造会话工厂SqlSessionFactory
- 会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)
- 操作数据库的接口,Executor执行器,同时负责查询缓存的维护
- Executor接口的执行方法中有一个MappedStatement类型的参数,封装了映射信息
- 输入参数映射
- 输出结果映射

读取MyBatis配置文件
执行流程的第一步是读取MyBatis的配置文件(通常命名为mybatis-config.xml),该文件定义了MyBatis的全局配置信息,包括数据库连接信息、映射文件的位置、类型别名等。
构造会话工厂SqlSessionFactory
MyBatis通过读取配置文件来构建SqlSessionFactory对象。SqlSessionFactory是一个重要的工厂类,它负责创建SqlSession对象。
创建SqlSession对象
SqlSession是MyBatis的核心对象,它代表了与数据库的一次会话。通过SqlSessionFactory创建SqlSession对象时,会建立数据库连接。SqlSession包含了执行SQL语句的所有方法,包括插入、更新、删除、查询等。
操作数据库的接口
在SqlSession中,MyBatis提供了一组操作数据库的接口,这些接口定义了执行数据库操作的方法,如insert、update、delete、select等。这些接口对应了SQL语句的执行。
Executor执行器
Executor是一个接口,负责执行SQL语句,并将结果返回给调用方。Executor接口有两种常见的实现:SimpleExecutor和ReuseExecutor。SimpleExecutor每次执行SQL语句都会创建一个新的Statement对象,而ReuseExecutor会重用Statement对象,以提高性能。Executor还负责维护查询缓存,以减少重复查询的开销。
MappedStatement
Executor接口的执行方法通常需要一个MappedStatement类型的参数,它封装了SQL语句的映射信息。MappedStatement包含了SQL语句、参数映射信息、结果映射信息等。
输入参数映射
在执行SQL语句时,MyBatis会将传入的Java对象参数映射到SQL语句中的占位符。这个映射过程是根据配置文件和注解中的映射信息来完成的。
输出结果映射
执行SQL查询后,MyBatis将查询结果映射回Java对象,将数据库中的列值映射到Java对象的属性上。这个映射过程也是根据配置文件和注解中的映射信息来完成的。

浙公网安备 33010602011771号