mybatis工作流程图
mybatis工作流程
1. 读取mybaits配置文件mybatis-config.xml。mybatis-config.xml是mybatis的全局配置文件,配置了mybatis的运行环境等信息,主要内容是获取数据库连接。
2. 加载映射文件mapper.xml,该文件是sql的映射文件,配置了操作数据库的sql语句,需要在mybatis-config.xml中加载才能执行,可以加载多个配置文件,每个配置文件对应数据库中的一张表。
3. 构建会话工厂,通过mybatis的环境等配置信息构建会话工厂sqlsessionfactory。
4. 创建sqlsession对象,由会话工厂创建,该对象中包含了执行sql的所有方法。
5. mybatis底层定义了一个executor接口来操作数据库,它会根据sqlsession传递的参数动态地生成需要执行的sql语句,同时负责查询缓存的维护。
6. 在exector接口的执行方法中,包含了一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL 语句的id、参数等。Mapper.xml文件中一个SQL对应一个MappedStatement对象,SQL的id即是 MappedStatement的id。
7. 输入参数映射。在执行方法时,MappedStatemeht 对象会对用户执行SQL语句的输入参数进行定义(可以定义为Map、List类型、 基本类型和POJO类型),Executor执行器会通过MappedStatement对象在执行SQL前, 将输入的Java对象映射到SQL语句中。这里对输入参数的映射过程就类似于JDBC编程中对 preparedStatement对象设置参数的过程。
8. 输出结果映射。 在数据库中执行完SQL语句后,MappedStatement 对象会对SQL执行输出的结果进行定义(可以定义为Map和 List类型、基本类型、POJO类型),Executor执行器会通过MappedStatement 对象在执行SQL 语句后,将输出结果映射至Java对象中。这种将输出结果映射到Java对象的过程就类似于JDBC 编程中对结果的解析处理过程。