Mybatis3源码分析(15)-Sql解析执行-Statement初始化和参数设置

本文深入分析Mybatis的SimpleExecutor在执行SQL时如何进行Statement初始化和参数设置。以PreparedStatementHandler为例,详解了Statement的初始化过程、参数设置方法以及从结果集获取数据的步骤。
摘要由CSDN通过智能技术生成

在SimpleExecutor中,执行SQL时调用preareStatement()方法来对statement进行初始化及参数设置。

   private Statement prepareStatement(StatementHandler handler, Log statementLog) throws SQLException {
    Statement stmt;
    Connection connection = getConnection(statementLog);
    //初始化
    stmt = handler.prepare(connection);
    //参数设置`
    handler.parameterize(stmt);
    return stmt;
  }

这里PreparedStatementHandler为例。详细分析这两个过程。

Statement初始化

这是BaseStatementHandler.prepare()方法
public Statement prepare(Connection connection) throws SQLException {
    ErrorContext.instance().sql(boundSql.getSql());
    Statement statement = null;
    try {
      //通过connection得到一个statement
      statement = instantiateStatement(connection);
      //设置执行超时时间
      setStatementTimeout(statement);
      setFetchSize(statement);
      return statement;
    } catch (SQLExcept
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值