Java开发必知:MyBatis一级缓存与二级缓存深度剖析
MyBatis的缓存分为一级缓存和二级缓存。 一级缓存:MyBatis的一级缓存是在每个Connection级别的,也就是在每一个SqlSession中。当SqlSession关闭时,这个SqlSession的一级缓存也就被清除了。一级缓存主要用于存储Statement对象。 二级缓存:MyBatis的二级缓存是在全局级别的,也就是在MyBatis的配置文件中配置的。二级缓存是所有SqlSession共享的,当SqlSession关闭时,这个SqlSession的一级缓存也就被清除了。二级缓存主要用于存储Statement对象。 一级缓存和二级缓存的区别: 1. 一级缓存是在每个SqlSession级别的,而二级缓存是在全局级别的。 2. 一级缓存主要用于存储Statement对象,而二级缓存主要用于存储预编译的SQL语句。 3. 一级缓存是SqlSession级别的,当SqlSession关闭时,这个SqlSession的一级缓存也就被清除了。而二级缓存是全局级别的,只要应用还在运行,那么二级缓存就不会被清除。 4. 一级缓存只存储结果集,而二级缓存存储的是预编译的SQL语句和结果集。 5. 一级缓存可以手动清除,而二级缓存不能手动清除,只能通过关闭SqlSession或者调用SqlSession的clearCache()方法来清除。 ######[AI小红书种草文 | 295点数解答 | 2023-11-07 22:24:40]
相关提问
- Python 实现 Pandas 文件分组处理、地市拆分及邮件发送:附代码优化建议(字节豆包 | 459点数解答 | 2024-12-25 01:17:06)265
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)407
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)308
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1140
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)320
- 巧用 MyBatis Plus 自定义拦截器实现数据权限控制(讯飞星火 | 567点数解答 | 2024-05-29 22:59:21)257
- MyBatis-Plus:用Wrapper构造器实现user与order联表查询代码示例 (字节豆包 | 277点数解答 | 2024-10-17 10:02:49)204
- MyBatis-Plus 纯代码实现联表查询:附详细示例代码(字节豆包 | 284点数解答 | 2024-10-17 11:46:14)210
- MyBatis-Plus 轻松实现:获取表中特定字段最大值全流程指南(阿里通义 | 527点数解答 | 2024-10-17 14:52:50)373
- MyBatis Include 写法揭秘:提升 SQL 可维护性与复用性(字节豆包 | 173点数解答 | 2024-11-08 10:36:41)158
- MyBatis-Plus 代码示例:轻松实现取某个字段最大值! (字节豆包 | 237点数解答 | 2024-12-10 10:12:49)160
- MyBatis-Plus 轻松实现取某个字段最大值:附代码示例及注意事项(阿里通义 | 247点数解答 | 2024-12-10 10:13:04)314