mybatis架构介绍

Mybatis的功能架构

  • API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
  • 核心数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
  • 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
image.png

Mybatis执行顺序

从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:

  • SqlSessionFactoryBuild 生产SqlSessionFactory
  • SqlSessionFactory 作为全局的SqlSessionFactory ,打开数据库连接回话SqlSession
  • SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能
  • Executor MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
  • StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合。
  • ParameterHandler 负责对用户传递的参数转换成JDBC Statement 所需要的参数,
  • ResultSetHandler 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;
  • TypeHandler 负责java数据类型和jdbc数据类型之间的映射和转换
  • MappedStatement MappedStatement维护了一条<select|update|delete|insert>节点的封装,
  • SqlSource 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
  • BoundSql 表示动态生成的SQL语句以及相应的参数信息
  • Configuration MyBatis所有的配置信息都维持在Configuration对象之中
mybatis执行顺序.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 引言# 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybait...
    七寸知架构阅读 77,083评论 36 979
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 11,216评论 0 4
  • 泰山初行,厚雾平顶未尽景。山半晴天。白云环山尖。 千山一缆,层绿萦聚眼。凭豪情。壮丽山河。鸣清秀林娟。
    callmengsir阅读 1,508评论 0 1
  • 生活中遇到各种各样的人,会对你有各种各样的评论,好或坏,而你无需理会,只需勇往直前。 爱雪,一个如花般的女子...
    仰望星空努力向前阅读 2,895评论 0 2
  • 生命如花,只要你还在绽放,我就拒绝枯萎 如果有再见,我宁愿你笑着说心里很苦,也不愿你流着泪说过得很幸福 懂你比爱你...
    曹望尘阅读 2,985评论 0 2

友情链接更多精彩内容