image.png
MyBatis 中,SQL 执行过程的实现代码是有层次的,每层都有相应的功能。比如:

  • SqlSession 是对外接口的接口,因此它提供了各种语义清晰的方法,供使用者调用。
  • Executor层做的事情较多,比如一二级缓存功能就是嵌入在该层内的。
  • StatementHandler 层主要是与JDBC 层面的接口打交道。
  • ParameterHandler 负责向 SQL 中设置运行时参数,是StatementHandler辅助类。
  • ResultSetHandler 负责处理 SQL 执行结果,是StatementHandler辅助类。
  • Configuration 是一个全局配置类,很多地方都依赖它。
  • MappedStatement 对应 SQL 配置,包含了 SQL 配置的相关信息
  • BoundSql 中包含了已完成解析的 SQL 语句,以及运行时参数等。

到此,关于 SQL 的执行过程就分析完了。