mybaits源码分析(八) StatementHandler的详解

本文深入分析了MyBatis的StatementHandler,它负责MyBatis与JDBC Statement的交互,包括预处理语句、简单语句和存储过程的处理。文中详细介绍了StatementHandler的类结构,如BaseStatementHandler、PreparedStatementHandler等,并探讨了其构造函数和执行过程,特别是prepare和parameterize方法的角色。最后提到了返回值处理阶段由ResultSetHandler完成。
摘要由CSDN通过智能技术生成

    mybaits源码分析(八) StatementHandler的详解


    概述StatementHandler是主要负责处理MyBatis与JDBC之间Statement的交互,通俗而言就是负责操作Statement对象与数据库之间的交互。其执行过程中主要依赖ParameterHandlerResultSetHandler进行参数绑定和结果实体类绑定。

一、类介绍

1、StatementHandler的类层级
    
    StatementHandler: 顶级接口, 定义了update、query、parameterize、prepare等方法。
    
    BaseStatementHandler:基础实现,负责创建ParameterHandler和ResultSetHandler。
    
    PreparedStatementHandler:预处理语句实现,
    
    SimpleStatementHandler: 简单语句实现,
    
    CallableStatementHandler: 存储过程实现。
    
    RoutingStatementHandler: 路由包装,根据不同的类型创建不同的实现作为delegate供实际实现方法调用。
    
    2、构造函数
      StatementHandler的构造函数主要是传入了实际执行中需要的一些参数,以及创建了参数处理和结果处理器。

  protected BaseStatementHandler(Executor executor, MappedStatement mappedStatement, Object parameterObject, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
	    this.configuration = mappedStatement.getConfiguration();
	    this.executor = executor;
	    this.mappedStatement = mappedStatement;
	    this.rowBounds = rowBounds;
	
	    this.typeHandlerRegistry = configuration.getTypeHandlerRegistry();
	    this.objectFactory = 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值