MyBatis 源码分析-项目总览 (3)

对应executor包

SQL语句的执行涉及多个组件,其中比较重要的是Executor 、StatementHandler 、ParameterHandler和 ResultSetHandler. Executor 主要负责维护- - 级缓存和二级缓存,并提供事务管理的相关操作,它会将数据库相关 操作委托给StatementHandler完成。StatementHandler首先通过ParameterHandler 完成SQL语句的实参绑定,然后 通过java. sql.Statement对象执行SQL语句并得到结果集,最后通过ResultSetHandler完成结果集的映射,得到结果 对象并返回。

MyBatis 源码分析-项目总览

3.2.4 插件

对应plugin包

Mybatis 自身的功能虽然强大,但是并不能完美切合所有的应用场景,因此MyBatis提供了插件接口,我们可以通过添加用 户自定义插件的方式对MyBatis进行扩展。用户自定义插件也可以改变Mybatis的默认行为,例如,我们可以拦截SQL语句并 对其进行重写。由于用户自定义插件会影响MyBatis的核心行为,在使用自定义插件之前,开发人员需要了解MyBatis内部的 原理,这样才能编写出安全、高效的插件。 3.3 接口层

对应session包

接口层相对简单,其核心是SqlSession 接口,该接口中定义了MyBatis 暴露给应用程序调用的API,也就是上层应用与 MyBatis交互的桥梁。接口层在接收到调用请求时,会调用核心处理层的相应模块来完成具体的数据库操作。 3.4 其他层 3.4.1 JDBC模块

对应 jdbc 包

JDBC单元测试支持类。【只能说是个测试挂件,白送都不要的那种,随便看看得了 】

3.4.2 Lang模块

里面只包含两个注解【从调用上好像没有任何类用到这个。不知道干啥用的!!原谅我的无知。】

3.5 小结

整体来说,MyBatis的代码结构还是比较简单易懂的。并且分包也比较清晰,见名知意。下面就是MyBatis的整体架构图

MyBatis 源码分析-项目总览

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdgsj.html