Mybatis源码之Statement处理器StatementHandler(一)

StatementHandler通过类名我们可以了解到它可能是Statement的处理器,它是一个接口,其实现类如下:

BaseStatementHandler:一个抽象类,只是实现了一些不涉及具体操作的方法

RoutingStatementHandler:类似路由器,根据配置文件来路由选择具体实现类SimpleStatementHandler、CallableStatementHandler和PreparedStatementHandler

SimpleStatementHandler:就是直接使用普通的Statement对象,这样每次执行SQL语句都需要数据库对SQL进行预编译

PrepareStatementHandler:使用PrepareStatement执行,虽然初次创建PrepareStatement时开销比较大,但在多次处理SQL时只需要初始化一次,可以有效提高性能

CallableStatementHandler:使用CallableStatement执行,CallableStatement是用来执行存储过程的。

选择不同StatementHandler的配置如下:通过根据不同的操作配置不同的StatementHandler来进行处理

<insert id="save"  statementType="STATEMENT"><!-- STATEMENT,PREPARED 或CALLABLE -->

源码如下:

/**
 * @author Clinton Begin
 */
public interface StatementHandler {
 
  //获取Statement
  Statement prepare(Connection connection)
      throws SQLException;
  //设置参数
  void parameterize(Statement statement)
      throws SQLException;
  //批量处理
  void batch(Statement statement)
      throws SQLException;
  //更新处理
  int update(Statement statement)
      throws SQLException;
  //查找处理
  <E> List<E> query(Statement statement, ResultHandler resultHandler)
      throws SQLException;
  //获得BoundSql
  BoundSql getBoundSql();
  //获得ParameterHandler
  ParameterHandler getParameterHandler();
 
}

 

本文原文地址:https://blog.csdn.net/qq924862077/article/details/52651373

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值