0
点赞
收藏
分享

微信扫一扫

Mybatis源码解读

南柯Taylor 2021-09-19 阅读 97
MyBatisJava

Mybatis入门

Mybatis构成

SqlSession的作用

映射器

生命周期

SqlSessionFactoryBuilder

SqlSessionFactory

SqlSession

Mapper

配置

properties元素

Mybatis支持的配置方式可能同时出现,所以MyBatis按照顺序去加载

别名

系统定义别名

自定义别名

typeHandler类型处理器

枚举类型typeHandler

objectFactory

缓存cache

开启二级缓存后,会使用CachingExecutor装饰Executor,进入一级缓存的查询流程前,会先CachingExecutor进行二级缓存的查询。二级缓存开启后,同一个namespace下面的所有操作预计,都影响着同一个Cache。即二级缓存被多个sqlsession共享,是一个全局变量

MyBatis的解析和运行原理

Mapper的接口实现方式?
构建SqlSessionFactory过程

SqlSession运行过程

SqlSession下的四大对象
  • 执行器
    真正执行Java和数据库交互的东西。在Mybatis中存在三种执行器
  • Simple就是普通的执行器。
  • REUSE执行器会重用预处理语句
  • BATCH执行器将重用语句并执行批量更新。
  • 数据库会话器
  • 数据库会话器就是专门处理数据库会话的。
  • Executor会先调用StatementHandler的prepare()方法预编译sql语句,同事设置一些基本运行参数。然后用parameterize()方法启用parameterHandler设置参数,完成预编译,而update()也是这样的,最后如果需要查询,就采用ResultSetHandler封装结果返回给调用者
  • 参数处理器
  • Mybatis是通过ParameterHandler对预编译语句进行参数设置。它的作用是完成对预编译参数的设置
  • 结果处理器
  • ResultSetHandler是结果处理器的接口定义。


插件

插件的初始化
插件的代理和反射设计
MetaObject
插件开发
总结:
举报

相关推荐

0 条评论