Mybatis源码解析- 整体架构及原理

Mybatis源码解析- 整体架构及原理

在深入了解Mybatis的源码之前,我们先了解一下Mybatis的整体架构和工作原理,这样有助于我们在阅读源码过程中了解思路和流程。

核心流程

在上一遍的入门程序中,我们通过示例代码简单的介绍了如何通过Myabtis进行一个简单的增删改查,并用简单的步骤描述了示例程序的运行过程。为了更直观,其工作原理可理解成如下步骤:



image


整体架构




image


我们从工作原理图中也能看到架构的影子。这是一个Mybatis的逻辑划分架构图,可以分成三层

代码结构




image


Mybatis的工程结构非常的清晰,基本上通过报名就可以了解到该模块的功能使用场景,能非常迅速的帮我们定位代码和了解功能。

  1. annotations:注解配置
  2. binding:绑定、代理 提供 Mapper 接口与 XML 映射文件进行关联的支持
  3. builder:构建、配置解析
  4. cache:缓存
  5. cursor:游标
  6. datasource:数据源
  7. exceptions:异常(基本上每个包下都有自己的自定义异常)
  8. executor: SQL执行器
  9. io:资源加载
  10. jdbc:jdbc操作
  11. lang:语言 UsesJava7、UsesJava8
  12. logging:日志支持
  13. mapping:映射参数、结果、SQL
  14. parsing:解析器 XPath、Token解析
  15. plugin:插件支持
  16. reflection:反射功能封装
  17. scripting:脚本
  18. session: 会话
  19. transaction:事务
  20. type:类型 jdbcType,javaType互转
  21. util:工具包

设计模式

源码中使用了很多的设计模式

总结

总的来说,Mybatis的代码还算比较好理解的,相对简单易懂。在了解JDBC的操作原理后,在结合Mybatis的运行原理,就能大致了解其工作流程了。后续我们将一步一步尽心分析!

聚圣源中国同学录我为祖国喝彩本剑仙绝不吃软饭漫画给杨姓年宝宝起名公安局长唐大江是什么电视剧大岛薰姓夏起名女起群聊的名称烧烤店怎么起什么名字好妯娌的三国时代在线观看火字的起名字使徒行者演员表绑架挠脚心韩姓起名韩姓男生名字公司起名标准姓氏高的男孩起名字男诗经女楚辞起名宝典易氏起名女孩reshade下载王力防盗门官网上海起名公司起名网康熙字典给姓郭宝宝起名字花牛在草地里什么仿写起什么咨询公司名合作社起那个名字好淄博区号八字公司免费起名字一起学网校老师名单密爱在线观看淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化