/**
 * @author Clinton Begin
 */
public class SimpleExecutor extends BaseExecutor {

  public SimpleExecutor(Configuration configuration, Transaction transaction) {
    super(configuration, transaction);
  }

  @Override
  public int doUpdate(MappedStatement ms, Object parameter) throws SQLException {
    Statement stmt = null;
    try {
	  //获得配置文件对象
      Configuration configuration = ms.getConfiguration();
	  //获得statementHandler里面有statement,来处理
      StatementHandler handler = configuration.newStatementHandler(this, ms, parameter, RowBounds.DEFAULT, null, null);
      stmt = prepareStatement(handler, ms.getStatementLog());
	  //最终是一个statement进行处理
      return handler.update(stmt);
    } finally {
      closeStatement(stmt);
    }
  }

  @Override
  public <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
    Statement stmt = null;
    try {
	  //获得配置文件对象
      Configuration configuration = ms.getConfiguration();
	  //获得statementHandler里面有statement,来处理
      StatementHandler handler = configuration.newStatementHandler(wrapper, ms, parameter, rowBounds, resultHandler, boundSql);
	  //获得statement
      stmt = prepareStatement(handler, ms.getStatementLog());
	  //最终是一个statement进行处理
      return handler.<E>query(stmt, resultHandler);
    } finally {
      closeStatement(stmt);
    }
  }

  @Override
  public List<BatchResult> doFlushStatements(boolean isRollback) throws SQLException {
    return Collections.emptyList();
  }

  private Statement prepareStatement(StatementHandler handler, Log statementLog) throws SQLException {
    Statement stmt;
    Connection connection = getConnection(statementLog);
    stmt = handler.prepare(connection);
    handler.parameterize(stmt);
    return stmt;
  }

}

最新文章

  1. 如何设置 Panorama 控件的只读 SelectedIndex 属性?
  2. NPOI导出Excel合并表头写入公式
  3. 【BZOJ】3523: [Poi2014]Bricks
  4. 形如(function(){}).call()的js语句
  5. Arch Linux 修改主机名称
  6. android属性
  7. 加特殊符号星号斜杠反斜杠/* \ */ !important等让css实现兼容各个浏览器的技巧的代码
  8. 为什么cp很多小文件非常慢——对cp和rm命令的一些思考
  9. EAN-13 条码(又称GTIN-13 条码)
  10. 网络最大流最短增广路Dinic算法模板
  11. Activity之间的隐士跳转
  12. kafka分布式消息队列介绍以及集群安装
  13. Oracle 存储过程以及存储函数
  14. 复习C#
  15. ***远程连接MYSQL提示1130 - Host is not allowed to connect to this MySQL server
  16. global的使用
  17. tomcat9配置https
  18. Clickhouse副本表以及分布式表简单实践
  19. JPA命名规则
  20. java继承2——类与继承(转)

热门文章

  1. XMPP(三)-安卓即时通讯客户端
  2. JDK的安装以及配置
  3. Android播放在线音乐文件
  4. UNIX环境高级编程——单实例的守护进程
  5. 5.QT中关于HTTPClient相关的操作,Json数据传输
  6. (一)SQLite与SQL语句基础
  7. Android面试之高级篇
  8. Android 优质精准的用户行为统计和日志打捞方案
  9. 如何回滚请求&lt;复制系统初始的数据&gt;所处理的数据
  10. outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)