工作原理
1)
读取mybatis配置文件,mybatis-config.xml(名字可任意起)为全局配置文件,配置了运行环境,框架参数等各种信息。
2)
加载映射文件,映射文件即sql文件,mybatis-config.xml中可以加载多个映射文件,原则上一个映射文件对应数据库中的一张表
3)
构造会话工厂,通过配置文件构建会话工厂SqlSessionFactory
String resource = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
4)
从工厂中获得SqlSession连接对象,该对象包含了执行sql语句的所有方法
SqlSession session=sqlSessionFactory.openSession();
5)
Executor执行器,mybatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态的生成需要执行的sql语句,同时负责查询缓存的维护
6)
MappedStatement对象,在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。
7)
输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。
8)
输出结果映射:输出结果类型可以是 Map、 List 等集合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。
基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。