美文网首页
Mybatis笔记

Mybatis笔记

作者: __小泽泽__ | 来源:发表于2017-06-21 16:13 被阅读0次
Mybatis是一个orm半自动化框架,目前在用以及学习次框架,所以追着代码研究Mybatis的一些原理,在此记录下笔记。

*mybatis初始化Configuration
这里没做过多研究,但之前有前辈的文章已经解析得很好了
http://blog.csdn.net/luanlouis/article/details/37744073

*把Mapper接口注册为bean,由Spring管理


Paste_Image.png

MapperScannerConfigurer.postProcessBeanDefinitionRegistry-->
ClassPathMapperScanner.scan-->doScan
依次将此包下的mapper进行注册bean


Paste_Image.png

Mybatis与数据库的交互方式有两种:
一种是传入statementId,有sqlsession执行相关操作
一种是直接调用mapper(实际还是sqlsession 执行相关操作)
有两种方式配置mapper.xml:
1.在SqlSessionFactoryBean配置mapperLocations


Paste_Image.png

2.在上图中的mybatis.cfg.xml配置mapper节点:

Paste_Image.png

*为mapper设置代理
在初始化的Configuration的过程中,会将mapper.xml文件进行解析,最终是XMLMapperBuilder类来解析。
XMLMapperBuilder.parse-->buildMapperForNamespace-->
Configuration.addMapper-->MapperRegistry.addMapper

Paste_Image.png Paste_Image.png

由上图可知,最终是将namespace对应的类(Mapper接口),以键值对保存在MapperRegistry的knownMappers中,请注意,而值是一个改类所对应的代理工厂MapperProxyFactory
下面来看看,当spring获取mapper依赖的时候:
MapperFactoryBean.getObject

Paste_Image.png

MapperRegistry.getMapper

Paste_Image.png

最终返回的是一个代理

Paste_Image.png

顺着源码一步步看,最终还是由sqlsession,查询MappedStateMent,调用Executor来执行相关命令

Paste_Image.png Paste_Image.png Paste_Image.png

此图是实现sqlSession接口的DefualtSqlSession类的方法

Paste_Image.png

以上纯属个人笔记,如有错误,请指导改正

相关文章

  • Spring系列 | 小荷才露尖尖角

    MyBatis学习笔记 MyBatis操练 MyBatis源码 SpringMVC学习笔记 SpringMVC...

  • MyBatis缓存

    MyBatis Mybatis笔记连载上篇连接Mybatis简单操作学习 Mybatis笔记连载下篇连接Mybat...

  • Mybatis动态SQL

    MyBatis Mybatis笔记连载上篇连接MyBatis缓存Mybatis笔记连载下篇连接 动态SQL 动态S...

  • Mybatis 学习笔记

    Mybatis 学习笔记 配置 MyBatis 环境 导入MyBaits依赖jar包 要使用 MyBatis, 需...

  • Mybatis学习笔记汇总(包括源码和jar包)

    博客整理 Mybatis学习笔记(一)——对原生jdbc中问题的总结 Mybatis学习笔记(二)——Mybati...

  • Mybatis笔记 一

    Mybatis笔记 一 为什么学Mybatis 目前最主流的持久层框架为hibernate与mybatis,而且国...

  • Mybatis--day01

    非本人总结的笔记,抄点笔记复习复习。感谢传智博客及黑马程序猿成长 什么是Mybatis ​ MyBatis 本...

  • 一,MyBatis应用分析与实践

    之前学习MyBatis整理了一些笔记,笔记分为四个部分:1.MyBatis应用分析与实践[https://www....

  • 初识MyBatis

    MyBatis学习笔记(一) 1、什么是MyBatis2、安装3、第一个mybatis实例 前言 1、ORM:Ob...

  • Spring和MyBatis整合笔记

    对于 Spring 框架和 MyBatis 框架整合,摸爬滚打总结了这篇笔记,MyBatis 用 XML 文件替代...

网友评论

      本文标题:Mybatis笔记

      本文链接:https://www.haomeiwen.com/subject/tzftcxtx.html