MyBatis源码系列——处理器StatementHandler

  • Post author:
  • Post category:其他


原创 鲁班大叔 源码阅读网

文本学习目的是弄清楚StatementHandler设计理念,以及它的实现结构。


一、定义


顾名思议,StatementHandler 就是用于封装JDBC中Statement的操作。即声明SQL、设置参数、执行SQL等。通常一次SQL执行完之后就要关闭它,最多它的生命周期也不会超过一次事务的范围。StatementHandler 也是一样,执行器中每执行一次SQL操作,都会通过Configuration 构建一个新的StatementHandler,用完就丢弃了。它们是1比N的关系。

1.设计理念

如果将StatementHandler中的逻辑,放到执行器中可不可以? 当然可以,但是放到基础执行器,还是放到其它执行器?放到基础执行器,基础执行器逻辑将会非常臃肿,事务、缓存等… 放到实现又会产生大量重复代码。所以MyBatis 作者才设计出StatementHandler 来封装Statement操作。

2.主流程中的位置

StatementHandler 是在每次执行SQL操作时创建,通过Configuration创建。然后在基于它执行Sql声明、参数处理、Sql调用、结果集处理等操作。它与执行器的关系是1:N。

在这里插入图片描述


3.功能职责


StatementHandler 接口共有8个方法



版权声明:本文为m0_47623367原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。