mybatis内部核心流程,详细说明如下文所示:
(1)读取mybatis的全局配置文件mybatis-config.xml,包括environment,typealiases,setting,mappers等关键节点;
(2)加载映射文件,可以加载多个映射文件,每个文件对应数据库中的一张表;
(3)构建会话工厂SqlSessionFactory,由sqlsessionFactory.build()完成;
(4)创建会话对象,由会话工厂openssion方法构建一个sqlsession对象
(5)executor执行器,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。
(6)Mapped Statement对象,mapper.xml 的一个sql对应Mapped statement的一个对象,mapper.xml中的id与mapped statement中的id对应起来;
(7)输入参数映射,输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型等;映射过程类似于jdbc的preparedstateme对象设置参数过程;
(8)输出结果映射,输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。过程类似于jdbc的结果集解析过程。