随笔分类 - Mybatis源码
摘要:UnpooledDataSource每次实时获取connection 核心流程 UnpooledDataSource#getConnection(java.lang.String, java.lang.String) -> UnpooledDataSource#doGetConnection(jav
阅读全文
摘要:SynchronizedCache核心代码 所有方法增加synchronized。 ScheduledCache核心代码 二级key缓存Map<Object, Object> entriesToAddOnCommit;Set<Object> entriesMissedInCache; getObje
阅读全文
摘要:核心对象 当Map存储key数量超出初始化设置的size时,标记最老的key,下次put时会自行删除eldest key。 Map<Object, Object> keyMap = new LinkedHashMap(); 为什么使用LinkedHashMap?支持头、尾,快速获取头结点,从Map中
阅读全文
摘要:核心代码 Deque<Object> keyList = new LinkedList<>(); 为什么使用LinkedList?单向链表。使用LinkedList实现FIFO,支持头、尾节点的单向链表。 添加时,判断数量大于初始化值时,删除头结点。 源码: public class FifoCac
阅读全文
摘要:针对mybatis3下的org.apache.ibatis.uitl下的MapUtils说明: 代码如下: public class MapUtil { /** * A temporary workaround for Java 8 specific performance issue JDK-81
阅读全文
摘要:1 /**管理一个集合JDBC驱动的基础服务 2 注意:在新的JDBC2.0api中实现了新的DataSource接口,提供了另一种链接数据源的方式。 3 使用DataSource的对象是首选方案 4 */ 5 public class DriverManager { 6 7 // 注册了JDBC驱动的集合 8 private final sta...
阅读全文
摘要:涉及到的类包括: MapperBuilderAssistant:Mapper文件解析辅助类,包括了解析各种节点的方法。 BaseBuilder:XMLMapperBuilder与MapperBuilderAssistant的父类,保存了Configuration、TypeAliasRegistry、
阅读全文
摘要:PooledDataSource主要涉及到两个类PooledConnection以及PoolState PooledConnection:PooledDataSource中创建的数据库连接,可以获得实际的realConnection和proxyConnection链接对象,重点说明PooledCon
阅读全文