文档章节

mybatis源码分析过程

飓风2000
 飓风2000
发布于 2018/05/30 19:52
字数 296
阅读 15
收藏 0

mybatis源码分析过程
一、准备期:
1.实例化sqlSessionFactoryBean(其实我认为这个类叫sqlSessionFactoryServer更准确,他是mybatis框架启动的入口)
a.加载configuration.xml和所有mapper.xml配置文件

b.加载各种配置参数
2.实例化BaseDao,其实就是为了为SqlSessionDaoSupport设置SqlSessionFactory,以便SqlSessionDaoSupport可以从Factory中拿到Session。Session是SqlSessionTemplate去工厂SqlSessionFactory中拿到的

二、使用期和完成期:
3.有了Session就可以在Dao中使用了。首先openSession
4.Dao中根据nameSpace+id去内存中找到具体的sql语句,然后根据传入的参数重新进行组装
5.数据库查询
6.根据数据库查询结果,组装返回值
7.关闭Session

三、过程细节关注:
8.从3-8的过程里面有connection和statement是被封装在Executor中,事务也需要看,缓存也需要看
9.Spring的工厂模式,Spring的配置文件加载机制,mybatis的内存模型,sql到对象的组装技巧,反射应用。这里需要深入理解Spring的源码。

10.实例:Bean实例化用到的两个类(InitializingBean接口-afterPropertiesSet,ApplicationListener接口-onApplicationEvent)

© 著作权归作者所有

共有 人打赏支持
飓风2000
粉丝 37
博文 330
码字总数 136046
作品 0
浦东
高级程序员
私信 提问
mybatis源码分析之TypeHandler

上一篇: mybatis源码分析之MapperMethod https://my.oschina.net/u/657390/blog/755787 分析了MapperMethod从创建到执行的过程,MapperMethod的执行包括执行sql返回结果. 在执行sql和返回结果...

udbwcso
2016/11/18
314
0
mybatis源码分析之SqlSession的创建过程

mybatis之SqlSessionFactory mybatis源码分析之Configuration mybatis源码分析之事务管理器 以上是之前的分析,在mybatis源码分析之事务管理器里分析到了事务管理器 SqlSession session = s...

udbwcso
2016/04/21
1K
0
MyBatis 源码分析 - 配置文件解析过程

* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括。本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于,和等,本文的篇幅也...

coolblog.xyz
2018/07/23
0
0
MyBatis 源码分析 - 内置数据源

1.简介 本篇文章将向大家介绍 MyBatis 内置数据源的实现逻辑。搞懂这些数据源的实现,可使大家对数据源有更深入的认识。同时在配置这些数据源时,也会更清楚每种属性的意义和用途。因此,如果...

田小波⊰
2018/08/21
0
0
MyBatis 源码分析 - 映射文件解析过程

1.简介 在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程。由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因。所以我将映射文件解析过程的分析内容从上一篇文章中...

田小波⊰
2018/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JDK 12又来了,我学不动了...

写在前面 看到 JDK 12又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8的函数式编程思维和范式 到 Java 1.9的模块化特性的加持 以及还没来得及深切感受一下 Java 1.11 的 ZGC强大之后,这次...

CodeSheep
35分钟前
7
0
解决在gradle构建project时,发生peer not authenticated错误的方法

问题: FAILURE: Build failed with an exception.* What went wrong:Could not resolve all dependencies for configuration ':wl01-service:compile'.> Could not resolve com.ali......

Benz001
45分钟前
1
0
Apache Ignite上的TensorFlow

任何深度学习都是从数据开始的,这是关键点。没有数据,就无法训练模型,也无法评估模型质量,更无法做出预测,因此,数据源非常重要。在做研究、构建新的神经网络架构、以及做实验时,会习惯...

李玉珏
今天
10
0
Java记录日志附带请求标识

起因 系统是web接口服务,排查故障的时候经常需要记录某次请求调用链路日志。这样我们拉日志的时候只要匹配这个traceid就行了 第一版解决方案 原来我们一直用了个很low的办法,在请求开始的时...

Tree
今天
4
0
使用split_size优化的ODPS SQL的场景

使用split_size优化的ODPS SQL的场景 首先有两个大背景需要说明如下: 说明1:split_size,设定一个map的最大数据输入量,单位M,默认256M。用户可以通过控制这个变量,从而达到对map端输入的...

阿里云官方博客
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部