Mybatis源码分析
MyBatis源码分析:Configuration
MyBatis依赖的jar不多,而且代码行数也没多少,其中使用了大量的设计模式,值得好好学习。下图是MyBatis的一张架构图,来自Java框架篇—Mybatis 入门。 Mybatis的功能架构分为三层: API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层:负责具体的SQL查找、S
日期 2023-06-12 10:48:40【mybatis3】MyBatis源码分析
mybatis源码分析(1)——SqlSessionFactory实例的产生过程
在使用mybatis框架时,第一步就需要产生SqlSessionFactory类的实例(相当于是产生连接池),通过调用SqlSessionFactoryBuilder类的实例的build方法来完成。下面具体对这一过程涉及的源码进行分析。 首先用Eclipse工具查看SqlSessionFactoryBuilder类的Outline视图: &nbs
日期 2023-06-12 10:48:40【mybatis3】MyBatis源码分析
Mybatis3源码分析:Sql解析执行-结果集映射(ResultSetHandler)
在PreparedStatementHandler中的query()方法中,是用ResultSetHandler来完成结果集的映射的。 public <E> List<E> quer
日期 2023-06-12 10:48:40Mybatis源码分析之(七)Mybatis一级缓存和二级缓存的实现
文章目录 一级缓存二级缓存总结 对于一名程序员,缓存真的很重要,而且缓存真的是老生常谈的一个话题拉。因为它在我们的开发过程中真的是无处不在。今天LZ带大家来看一下。My
日期 2023-06-12 10:48:40Mybatis源码分析之(六)mybatis拦截器(Interceptor)的实现原理
文章目录 前言InterceptorChain保存所有的Interceptor创建四大对象都走ConfigurationInterceptorChain增强对象方法Plugin封装动态代理,让你使
日期 2023-06-12 10:48:40Mybatis源码分析之(四)mapper访问数据库的底层原理(代理方法中具体访问数据库的细节)
从之前的文章,我们知道了其实mapper真正执行的方法就下面的最后两行。(以下所有的分析都基于一次mybatis的一次select查询。 MapperProxy类中的invoke函数 pu
日期 2023-06-12 10:48:40Mybatis源码分析之(三)mapper接口底层原理(为什么不用写方法体就能访问到数据库)
mybatis是怎么拿sqlSession 在 上一篇的时候,我们的SqlSessionFactoryBuilder已经从xml文件中解析出了Configuration并且返回了sessionFactory。
日期 2023-06-12 10:48:40Mybatis源码分析之(二)根据配置文件创建SqlSessionFactory(Configuration的创建过程)
SqlSessionFactoryBuilder.build创建SqlSessionFactory(粗略走一步流程) 看完上篇文章后,你对mybatis应该有个大概的了解了
日期 2023-06-12 10:48:40Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)
数据库工作: 首先准备工作,安装mysql,并且新建一张t_demo表 CREATE TABLE `t_demo` ( `name` varc
日期 2023-06-12 10:48:40Mybatis源码分析开篇
Mybatis的由来 iBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat
日期 2023-06-12 10:48:40Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
本篇对mybatis从取到数据库数据开始到映射成对象并返回的过程进行了详细的分析。 转换ResultSet成java对象 下面的代码是PreparedStatementHandler中的 @Override
日期 2023-06-12 10:48:40Mybatis源码分析(一): 下载Mybatis源码安装并导入IDEA[转载】
https://zhuanlan.zhihu.com/p/145101691
日期 2023-06-12 10:48:40Mybatis Interceptor 拦截器原理 源码分析
Mybatis Interceptor 拦截器原理 源码分析 Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。 代理链的生成 Mybatis支持对Executor、StatementHandler、Pam
日期 2023-06-12 10:48:40MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析
我们以往使用ibatis或者mybatis 都是以这种方式调用XML当中定义的CRUD标签来执行SQL 比如这样 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/myb
日期 2023-06-12 10:48:40Mybatis+Oracle搭配insert空值报错之myBatis+mysql驱动+oracle驱动的源码分析
为了便于SEO搜索到,首先把报错内容贴出来吧 不同版本的Oracle驱动会报不同的错 1 <dependency> 2 <groupId>com.oracle</groupId> 3 <artifactId>ojdbc6</artifactId> 4 <version>1.0
日期 2023-06-12 10:48:40