执行SQL-DefaultSqlSession.selectOne()
selectOne()最终也是调用了selectList()。
在SelectList()中,我们先根据command name(Statement ID)从Configuration中拿到MappedStatement,这个ms 上面有我们在xml 中配置的所有属性,包括id、statementType、sqlSource、useCache、入参、出参等等。
然后执行了Executor 的query()方法
前面我们说到了Executor 有三种基本类型,同学们还记得是哪几种么?
SIMPLE/REUSE/BATCH,还有一种包装类型,CachingExecutor。
那么在这里到底会选择哪一种执行器呢?
我们要回过头去看看DefaultSqlSession 在初始化的时候是怎么赋值的,这个就是我们的会话创建过程。
如果启用了二级缓存,就会先调用CachingExecutor 的query()方法,里面有缓存相关的操作,然后才是再调用基本类型的执行器,比如默认的SimpleExecutor。
在没有开启二级缓存的情况下,先会走到BaseExecutor 的query()方法(否则会先走到CachingExecutor)。
执行SQL-DefaultSqlSession.selectOne()相关推荐
- mybatis 创建session, 缓存, 执行SQL
案例代码, 上一个博客已经分析了 SqlSessionFactory 的 build , 本文内容部分知识基于上篇的文章 mybatis 的初始化, build 这节我们分析, 开启session, ...
- 可执行SQL文的mybatis工具类
1.创建工具类 import org.apache.ibatis.builder.StaticSqlSource; import org.apache.ibatis.exceptions.TooMa ...
- java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- java执行sql文件_面试官:MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- MyBatis直接执行SQL的工具SqlMapper
可能有些人也有过类似需求,一般都会选择使用其他的方式如Spring-JDBC等方式解决. 能否通过MyBatis实现这样的功能呢? 为了让通用Mapper更彻底的支持多表操作以及更灵活的操作,在2.2 ...
- MyBatis执行sql的整个流程
MyBatis执行sql的整个流程 大致过程:启动->解析配置文件->创建executor->绑定参数->执行sql->结果集映射 扫描配置 @MapperScan,配置 ...
- mysql 执行cmd,mysql命令行中执行sql的几种方式总结
1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013 ...
- mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结
本文主要向大家介绍了MySQL数据库之mysql命令行中执行sql的几种方式总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.直接输入sql执行 MySQL> se ...
- 一起谈.NET技术,linq2sql:直接执行sql语句
1.ExecuteQuery方法 看命名,我们很容易联想到ado.net里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该&quo ...
- mysql数据库会同时执行sql吗_mysql 一次执行多条sql语句
最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.s ...
最新文章
- led灯串怎么摆造型_一元包邮的家用LED日光灯泡,究竟是怎么做到的?
- eslint不报错 vue_【简易教程】基于Vue-cli使用eslint指南
- oracle的java路径,oracle学习----访问路径
- C语言 链表实现学生管理系统(含文件读写操作)
- mysql8報錯解決方案彙總(持續更新中)
- html上传文件_.NET基于WebUploader大文件分片上传、断网续传、秒传
- matlab背景点状,基于MATLAB的点状目标检测
- 从零开始学C++之运算符重载(三):完善String类([]、 +、 += 运算符重载)、和运算符重载...
- word20161219
- 关于angularJS绑定数据时自动转义html标签
- oracle 修改sga参数,oracle 参数文件的修改,sga pga参数的修改
- 如何启用sqlplus的AutoTrace功能
- Python-nmap 使用文档
- android os 2.2刷机包,N1内置CoreELEC9.2.2、安卓7.1.2双系统刷机包,全功能刷机包V2.2...
- win10配置计算机环境变量,教你win10怎么设置环境变量
- 我是SPI,我让框架更加优雅了!
- SSH密匙key介绍
- [开源]蚂蚁森林自动收能量,自动解锁和自动触发
- 重庆文理学院计算机公众号,重庆文理学院各微信公众号影响力排行榜新鲜出炉啦!!!...
- Mysql删除分区,增加分区,分区数据清理