在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点数解答]
相关提问
- pandas读取文件,文件某一列分组,条件为列数据字段中包含“一级”为一组,没有“一级”的为一组,将pandas读取到的文件按地市映射表分为各地市文件,再将这个文件当作邮件附件,邮件正文为某地市,有“一级”多少,没有“一级”多少,语言方向:Python,系统环境:Windows(459点数解答 | 2024-12-25 01:17:06)166
- import javax.swing.*; import java.awt.*; import java.awt.datatransfer.clipboard; import java.awt.datatransfer.stringselection; import java.awt.datatransfer.transferable; import java.awt.event.*; import java.io.*; import java.nio.file.files; import java.nio.file.path; import java.nio.file.paths; import java.time.localdatetime; import java.util.hashmap; import java.util.list; import java.util.map; import java.util.random; public class copy { static private final jtextarea textarea = new jtext(1497点数解答 | 2024-08-25 09:40:33)322
- dm.jdbc.driver.dmexception: 数据溢出 at dm.jdbc.driver.dberror.throwexception(dberror.java:636) at dm.jdbc.c.b.p.s(msg.java:225) at dm.jdbc.c.b.p.p(msg.java:185) at dm.jdbc.c.b.p.o(msg.java:166) at dm.jdbc.c.a.a(dbaccess.java:776) at dm.jdbc.c.a.a(dbaccess.java:327) at dm.jdbc.c.a.a(dbaccess.java:435) at dm.jdbc.driver.dmdbpreparedstatement.executeinner(dmdbpreparedstatement.java:284) at dm.jdbc.driver.dmdbpreparedstatement.do_executequery(dmdbpreparedstatement.java:383) at dm.jdbc.driver.(598点数解答 | 2024-10-15 15:48:38)224
- 问题排查:dm.jdbc.driver.dmexception: 数据溢出 at dm.jdbc.driver.dberror.throwexception(dberror.java:636) at dm.jdbc.c.b.p.s(msg.java:225) at dm.jdbc.c.b.p.p(msg.java:185) at dm.jdbc.c.b.p.o(msg.java:166) at dm.jdbc.c.a.a(dbaccess.java:776) at dm.jdbc.c.a.a(dbaccess.java:327) at dm.jdbc.c.a.a(dbaccess.java:435) at dm.jdbc.driver.dmdbpreparedstatement.executeinner(dmdbpreparedstatement.java:284) at dm.jdbc.driver.dmdbpreparedstatement.do_executequery(dmdbpreparedstatement.java:383) at dm.jdbc.dr(403点数解答 | 2024-10-15 15:48:41)915
- import com.opencsv.csvreader; import com.opencsv.exceptions.csvvalidationexception; import java.io.filereader; import java.io.ioexception; import java.text.parseexception; import java.text.simpledateformat; import java.util.*; public class stockstatistics { public static void main(string[] args) { string filepath = "stocks.csv"; // 请确保csv文件与此java文件在同一目录下,或提供完整路径 simpledateformat sdf = new simpledateformat("yyyy-mm-dd"); map<string, stockdata> monthlydata = new has(66点数解答 | 2024-11-13 15:31:04)189
- mybatis plus 实现数据权限控制(567点数解答 | 2024-05-29 22:59:21)216
- mybatis-plus代码写 联表查询语句(277点数解答 | 2024-10-17 10:02:49)172
- mybatis-plus 纯代码写 联表查询语句(284点数解答 | 2024-10-17 11:46:14)173
- mybatis-plus 取表中某个字段最大值(527点数解答 | 2024-10-17 14:52:50)271
- mybatis include写法(173点数解答 | 2024-11-08 10:36:41)125
- mybatis-plus 实现取某个字段最大值(237点数解答 | 2024-12-10 10:12:49)121
- mybatis-plus 实现取某个字段最大值(247点数解答 | 2024-12-10 10:13:04)268