mybatis源码
文章平均质量分 67
KennorWooo
这个作者很懒,什么都没留下…
展开
-
mybatis源码系列(七)—— 反射模块
首先看一下反射模块的核心类:ObjectFactory:MyBatis每次创建结果对象的新实例时,它都会使用对象工厂(ObjectFactory)去构建POJO;ReflectorFactory:创建Reflector的工厂类,Reflector是MyBatis反射模块的基础,每个Reflector对象都对应一个类,在其中缓存了反射操作所需要的类元信息;ObjectWrapper:对对象的包装,抽象了对象的属性信息,定义了一系列查询对象属性信息的方法,以及更新属性的方法;ObjectWrapperF原创 2022-01-01 16:43:59 · 591 阅读 · 0 评论 -
mybatis源码系列(六)—— Cache模块
首先整体看一下MyBatis中为我们提供的缓存功能相关的类:MyBatis加载配置初始化二级缓存组件的流程:查询获取缓存过程:接着我们看一下CacheKey是如何正确找到对应缓存的首先看CacheKey是怎么创建的limit默认是Integer.MAX_VALUE可以看到CacheKey主要由namspace+id,offset、limit、sql、请求参数和环境决定,然后将这些参数进行hash计算,得出hash值。接着就是判断CacheKey是否相等,原创 2022-01-01 16:42:51 · 347 阅读 · 0 评论 -
mybatis源码系列(五)—— DataSource模块
首先我们看一下几个关键的类PooledConnection:使用动态代理封装了真正的数据库连接对象;PoolState:用于管理PooledConnection对象状态的组件,通过两个list分别 管理空闲状态的连接资源和活跃状态的连接资源PooledDataSource:一个简单,同步的、线程安全的数据库连接池PooledDataSource的配置和初始化在示例代码中mybatis-config.xml中如下配置,采用PooledDataSourcemybatis在启动过程中会解析envir原创 2022-01-01 16:41:28 · 769 阅读 · 0 评论 -
mybatis源码系列(四)—— Log模块
示例代码InputStream inputStream = new FileInputStream(new File("src/main/resources/mybatis-config.xml"));// 1.加载配置文件创建configuration对象,创建SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2.创建SqlSessi原创 2022-01-01 16:40:17 · 459 阅读 · 0 评论 -
mybatis源码系列(三)—— Excutor获取数据库数据的流程
示例代码InputStream inputStream = new FileInputStream(new File("src/main/resources/mybatis-config.xml"));// 1.加载配置文件创建configuration对象,创建SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2.创建SqlSessi原创 2022-01-01 16:38:35 · 410 阅读 · 0 评论 -
mybatis源码系列(二)—— Mapper接口的binding流程
示例代码InputStream inputStream = new FileInputStream(new File("src/main/resources/mybatis-config.xml"));// 1.加载配置文件创建configuration对象,创建SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2.创建SqlSessi原创 2022-01-01 16:37:52 · 260 阅读 · 0 评论 -
mybatis源码系列(一)—— mybatis启动配置加载
首先看一下我们用到的示例代码InputStream inputStream = new FileInputStream(new File("src/main/resources/mybatis-config.xml"));// 1.加载配置文件创建configuration对象,创建SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2.原创 2022-01-01 16:31:42 · 520 阅读 · 0 评论