
Mybatis走进源码
文章平均质量分 94
Mybatis走进源码
振鹏Dong
天津理工大学22级软件工程学生董振鹏
展开
-
剖析Mybatis中用到的设计模式
框架对很多设计模式的实现,都并非标准的代码实现,都做了比较多的自我改进。实际上,这就是所谓的灵活应用, 只借鉴不照搬, 根据具体问题针对性地去解决。涉及到Mybatis源码知识和设计模式,这点我之前的博客均有涉及。可以查看我的专栏~ 点击上述文字也可以跳转至专栏信息页哦。原创 2025-04-06 17:42:20 · 847 阅读 · 0 评论 -
ORM发展史&Mybatis配置文件的理解
ORM( Object Relational Mapping) ,也就是对象与关系的映射,对象是程序里面的对象,关系是它与数据库里面的数据的关系,也就是说,ORM框架帮助我们解决的问题是程序对象和关系型数据库的相互映射的问题。原创 2025-03-23 15:25:06 · 584 阅读 · 0 评论 -
Mybatis核心工作原理(走进源码)
Mybatis核心流程,从源码入手原创 2025-03-25 14:46:11 · 1359 阅读 · 0 评论 -
MyBatis基础模块-类型转换模块
MyBatis是一个持久层框架ORM框架,实现数据库中数据和Java对象中的属性的双向映射,那么不可避免的就会碰到类型转换的问题,在PreparedStatement为SQL语句绑定参数时,需要从Java类型转换为JDBC类型,而从结果集中获取数据时,则需要从JDBC类型转换为Java类型,所以我们来看下在MyBatis中是如何实现类型的转换的。因为我们在全局配置文件中指定了对应的别名,那么我们在映射文件中就可以简写我们的类型了,这样在解析映射文件时,我们同样也是需要做别名的处理的。原创 2025-03-29 15:33:00 · 542 阅读 · 0 评论 -
Mybatis缓存模块分析-源码
MyBatis作为一个强大的持久层框架,缓存是其必不可少的功能之一,Mybatis中的缓存分为一级缓存和二级缓存。但本质上是一样的,都是使用Cache接口实现的。缓存位于 org.apache.ibatis.cache包下。通过结构我们能够发现Cache其实使用到了装饰器模式来实现缓存的处理。“装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能)。原创 2025-03-27 11:19:27 · 823 阅读 · 0 评论 -
Mybatis日志模块分析--适配器模式+代理模式
日志在我们开发过程中占据了一个非常重要的地位,是开发和运维管理之间的桥梁,在Java中的日志框架也非常多,Log4j,Log4j2,Apache Commons Log,java.util.logging,slf4j等,这些工具对外的接口也都不尽相同,为了统一这些工具,MyBatis定义了一套统一的日志接口供上层使用。原创 2025-03-29 13:18:32 · 486 阅读 · 0 评论 -
Mybatis源码-反射模块
JDBC优化时候,我们是可以通过反射和元数据来对相关的方法实现封装。在Mybatis中,参数处理与结果集映射等操作也使用了大量的反射操作。为了简化反射操作的相关代码,Mybatis提供专门的反射模块,将常见的反射行为做进一步封装,提供反射的API。那么,本文的研究内容就聚焦于Mybatis是如何实现反射模块的。整体的反射模块如图所示主要涉及到:Reflector、ReflectorFactory、Invoker、MetaClass、MetaObject。原创 2025-03-29 15:09:10 · 1022 阅读 · 0 评论 -
Mybatis源码 插件机制
插件是一种常见的扩展方式,大多数开源框架也都支持用户通过添加自定义插件的方式来扩展或者改变原有的功能,MyBatis中也提供的有插件,虽然叫插件,但是实际上是通过拦截器(Interceptor)实现的,在MyBatis的插件模块中涉及到责任链模式和JDK动态代理。原创 2025-03-29 16:28:51 · 588 阅读 · 0 评论 -
Mybatis整合Spring原理
配置文件中Mybatis集成到Spring中,进一步简化Mybatis的使用,所以只是封装并没有替换Mybatis中的核心。那么针对于Spring如何整合mybatis,我们要分析的对象还是那些:SqlSessionFactory、SqlSession、MapperProxy。那么,本文分析如下几个点,SqlSessionFactory在哪创建、SqlSession在哪创建,以及代理类在哪创建。原创 2025-03-30 13:57:03 · 765 阅读 · 0 评论