Mybatis源码解析(6)--二级缓存机制
MyBatis的二级缓存相对于一级缓存来说,实现了SqlSession之间缓存数据的共享,同时粒度更加的细,能够到namespace级别,通过Cache接口实现类不同的组合,对Cache的可控性也更强。
Mybatis源码解析(5)--一级缓存机制
在一个应用,我们有可能会反复地执行完全相同的查询语句,而且这些查询内容可能变化很小。尽管存在数据库连接池,而每次一次查询都需要经过网络传输、数据库执行sql操作等。如果这种查询过于频繁,那么会造成大量的资源浪费。为了解决这个问题Mybatis提供了一级缓存和二级缓存。每次查询先查询缓存,如果缓存中有数据就不用从数据库中获取,大大提高系统性能。
Mybatis源码解析(4)--数据源与连接池
Mybatis作为一个数据操作中间件,支持三种内建三种类型的DataSource, 即 UNPOOLED, POOLED 和 JNDI. 本文主要是分析Mybatis源码中如何支持和实现三种数据源、数据库连接、以及事务。
Java Bridge Method详解
今天看Mybatis源码的时候,发现源码中有一个判断method是否是bridge。这个代码是github上开发人员提出的一个bug。mybatis针对该内容作了修改。之前没有接触过这个概念,所以上网搜了下,了解下Bridge Method。
Mybatis源码解析(3)--SqlSession工作过程分析
上一篇博客从源码角度已经分析了Mybatis如何加载配置,如何通过配置完成Configuration的初始化工作,已经如何获得SqlSession。本文主要是分析SqlSession如何执行SQL操作。
Mybatis源码解析(2)--初始化
在使用mybatis, spring等开源框架的时候,首先需要根据业务需求设置mybatis的配置,如数据源、mapper映射关系等。本文根据Mybatis源码介绍Mybatis如何完成初始化工作。
Mockito 原理解析
本文主要讲解java测试框架 Mockito的工作原理.mocktio主要是使用代理模式来设计,mockitio采用byte buddy框架生成一个动态代理对象,为mock对象的每个方法都做了拦截。只要调用mock对象则会直接调用拦截器方法。