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