- 博客(4)
- 收藏
- 关注
原创 Mybatis执行sql过程源码解读
1.SqlSession.openSession()创建了Executor对象(真正的sql执行者),这个对象有两大类普通Executor和CacheExecutor(实现二级缓存),BaseExecutor实现一级缓存。如果配置了插件,在创建Executor的过程中会创建Executor的代理。
2023-02-08 17:58:52
290
原创 Mybatis二级缓存实现
Mybatis默认开启一级缓存,一级缓存的作用域是SqlSession.Mybatis二级缓存需要在XXXMapper.xml文件中配置节点,可以到Mybatis官网查看具体配置。二级缓存通过责任链+装饰器来实现。通过装饰器包装特定功能的Cache,实现缓存功能的增强。调用缓存方法时,通过责任链,一层一层调用。
2023-02-08 11:18:59
272
原创 MyBatis源码解析--Mybatis解析配置文件
Mybatis是一个半自动的ORM框架(O-Object R-relation M-mapping)。编写sql灵活,支持注解和xml配置。使用它代替传统的JDBC交互数据库,解决了硬编码等问题。说他是一个半自动ORM框架是因为在数据库移植的时候需要我们手动修改Sql和配置文件。与它对应的Hibernate是一个全自动ORM框架。
2023-02-07 10:36:17
158
原创 HashMap的容量与扩容
HashMap的容量和扩容主要涉及到size、capacity、loadFctor、threshold几个参数,其中size是map已经存储KV对的数量。capacity是map最大可以存放的数量。loadFacotr用来控制map放满的程度,可以自己设置但是一般使用默认的即可(0.75即3/4,这个值还有一个优点就是loadFactor*capacity一直是整数)。当map中KV对的数量超过threshold时map会扩容,扩容为旧容量的2倍。业精于勤,荒于嬉;行成于思,毁于随。
2023-02-03 15:26:56
1224
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人