我们学习了MyBatis 的编程式使用的方法,我们再来回顾一下MyBatis 的主要工作流程:
首先在MyBatis 启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,这里面包含了我们怎么控制MyBatis 的行为,和我们要对数据库下达的指令,也就是我们的SQL 信息。我们会把它们解析成一个Configuration 对象。
接下来就是我们操作数据库的接口,它在应用程序和数据库中间,代表我们跟数据库之间的一次连接:这个就是SqlSession 对象。
我们要获得一个会话, 必须有一个会话工厂SqlSessionFactory 。SqlSessionFactory 里面又必须包含我们的所有的配置信息,所以我们会通过一个Builder 来创建工厂类。
我们知道,MyBatis 是对JDBC 的封装,也就是意味着底层一定会出现JDBC 的一些核心对象,比如执行SQL 的Statement,结果集ResultSet。在Mybatis 里面,SqlSession 只是提供给应用的一个接口,还不是SQL 的真正的执行对象。
我们上次课提到了,SqlSession 持有了一个Executor 对象,用来封装对数据库的操作。
在执行器Executor 执行query 或者update 操作的时候我们创建一系列的对象,来处理参数、执行SQL、处理结果集,这里我们把它简化成一个对象:StatementHandler,在阅读源码的时候我们再去了解还有什么其他的对象。