Mybatis的执行器

下面先展示一张图,用来说明一下Mybatis执行器的整体架构

SimpleExecutor

首先SimpleExecutor是我们最常使用的一个执行器,无论我们执行什么方法默认调用的都是SimpleExecutor

下面是基本使用,这里可能会比较懵了,哪里来的configuration,doQuery,RowBounds,ResultHandler,BoundSql

在这里我来一一解释

SimpleExecutor simpleExecutor = new SimpleExecutor(configuration, transaction);
MappedStatement ms = configuration.getMappedStatement("com.guan.ibatis.mapper.UserMapper.queryUsersInfo");
BoundSql boundSql = ms.getBoundSql(null);
List<User> users = simpleExecutor.doQuery(ms, null,
RowBounds.DEFAULT, SimpleExecutor.NO_RESULT_HANDLER, boundSql);
users.forEach(System.out::println);
  1. configuration我们读取配置文件使用SqlSessionFactoryBuilder来构建,而配置文件(Mybatis-config.xml)解析后就会将解析完的所有数据放到一个名为Configuration的类里面,我们的一些操作,比如设置Setting,设置数据源,设置映射文件,都可以通过new Configuration()来进行配置,而获取Configuration的实力,只需要我们SqlSessionFactoryBuilder.build()所创建的SqlSessionFactory就可以获取Configuration了--->SqlSessionFactory.getConfiguration()
  2. doQuery是BaseMapper的一个抽象方法,分别由三个子类进行实现,是最基本的查询方法,无论调用什么查询方法都会调用doQuery这个方法
  3. RowBounds分页条件,我们可以new RowBounds()来自定义分页条件,而RowBounds.DEFAULT就是new一个0-Integer.MAX_VALUE的RowBounds
  4. ResultHandler结果处理器
  5. BoundSql我们编写的sql语句,获取方法:ms.getBoundSql()没有参数就可以传null
  6. ms就是MappedStatement获取我们对应方法的属性,参数为statementid(包名.类名.方法名)

最新文章

  1. 各种Android手机Root方法
  2. [转载] 使用MySQL Proxy解决MySQL主从同步延迟
  3. 选择排序(java版)
  4. GitHub之创建
  5. Linux一
  6. 一个简单而经典的RTX51 Tiny应用实例
  7. 一起来学Go --- (go的枚举以及数据类型)
  8. [Egret]长按图片分享、分享图片、本地存储
  9. python并发编程之多进程(二):互斥锁(同步锁)&amp;进程其他属性&amp;进程间通信(queue)&amp;生产者消费者模型
  10. 在Windows上安装配置MongoDB
  11. python&amp;JSONP(Jquery篇)
  12. Luogu3605 [USACO17JAN]Promotion Counting晋升者计数
  13. [C]gcc编译器的一些常用语法
  14. 团队冲刺--Seven
  15. Android——手机尺寸相关的概念 +尺寸单位+关于颜色
  16. 利用arcgis制作出 源解析要用的ASCII文件
  17. iOS UITableView划动删除的实现
  18. su切换用户报错cannot set user id: Resource temporarily unavailable
  19. 【java】字符串的反转
  20. Zabbix配置微信报警通知

热门文章

  1. C#入门到精通系列课程——第2章编写C#程序
  2. Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
  3. Docker学习笔记---通俗易懂
  4. Xposed框架Hook Android应用的所有类方法打印Log日志
  5. UVA11388GCD LCM
  6. C#-几个STL相关
  7. 【easyUI】取消easyui行点击选中事件,智能通过勾选checkbox才能选中行
  8. python中的xlrd模块学习
  9. Django(2)python虚拟环境virtualenvwrapper
  10. Mybatis学习之自定义持久层框架(三) 自定义持久层框架:读取并解析配置文件