酷代码 AI
菜单
全部AI  /  自媒体创作  /  AI小红书种草文
服务商

在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()方法来清除。 [2023-11-07 22:24:40 | AI小红书种草文 | 295点数解答]

相关提问