mybatis3 源码深度解析-StatementHandler 详解

大纲:

  • StatementHandler 作用
  • StatementHandler 接口的方法介绍
  • StatementHandler 接口实现类介绍


  • StatementHandler 作用
  1. StatementHandler 封装了对 Jdbc Statement 的操作
  2. 点击回顾 jdbc api mybatis3 源码深度解析-JDBC API 回顾
  • StatementHandler 接口的方法介绍
public interface StatementHandler {
  /**
   * 用于创建 JDBC Statement 对象,并且完成属性赋值
   */
  Statement prepare(Connection connection, Integer transactionTimeout) throws SQLException;
  /**
   * 使用 mybatis ParameterHandler 为 PrepareStatement和CallableStatement 参数占位符赋值
   */
  void parameterize(Statement statement) throws SQLException;
  /**
   * 将 sql 命令添加到批处理列表
   */
  void batch(Statement statement) throws SQLException;
  /**
   * 调用 Statement 对象 execute()方法执行更新语句(update|insert|delete)
   */
  int update(Statement statement) throws SQLException;
  /**
   * 执行查询语句,并且使用 ResultSetHandler 处理查询结果
   */
   List query(Statement statement, ResultHandler resultHandler) throws SQLException;
  /**
   * 带游标的查询,能动态通过 iterator 从数据库加载数据,适用于大数据量查询,避免一次性将所有数据查询到内存
   */
   Cursor queryCursor(Statement statement) throws SQLException;
  /**
   * 获取 Mapper 中配置的 sql 语句,是动态 sql 解析后的 sql 语句
   */
  BoundSql getBoundSql();

  ParameterHandler getParameterHandler();
}
  • StatementHandler 接口实现类介绍


mybatis3 源码深度解析-StatementHandler 详解

StatementHandler 继承关系图

  • BaseStatementHandler:抽象类,是StatementHandler 所有实现类的通用父类
  • SimpleStatementHandler : 封装了 JDBC Statement 对象的操作
  • PreparedStatementHandler: 封装 JDBC PreparedStatement对象的操作
  • CallableStatementHandler: 封装 JDBC CallableStatement对象的操作
  • RoutingStatementHandler: 会根据 Mapper配置的 statementType属性值(STATEMENT, PREPARED, CALLABLE),创建对应的StatementHandler实现类
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章