第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战

2023-03-21
| 31页
| 126人阅读
| 0人下载
教辅

内容正文:

第5章 MyBatis缓存处理 MyBatis的缓存机制 一级缓存 二级缓存 整合EhCache缓存 MyBatis的缓存机制 5.1 目录 Contents 初心至善 匠心育人 5.1 MyBatis的缓存机制 通常情况下,缓存将程序使用频率较高的数据存储在内存中,它具有可被快速读取和使用的特点。 MyBatis支持缓存,它在内存中开辟一块区域,该区域用于保存程序对数据库的操作信息和数据库返回的数据,如果下一次程序再执行相同的操作,那么直接从缓存中读取数据而不是从数据库读取,如此一来,大大提升数据库性能并减轻系统压力。 MyBatis支持的缓存分为一级缓存和二级缓存,如图所示。 初心至善 匠心育人 5.1 MyBatis的缓存机制 其中,一级缓存是SqlSession级别的缓存。当创建SqlSession对象操作数据库时,MyBatis在SqlSession对象中引入一个HashMap对象作为存储数据的区域,HashMap对象的key是由SQL语句、条件、statement等信息组成一个唯一值。HashMap对象的value是查询出的结果对象。不同SqlSession对象之间的HashMap对象互不影响。 二级缓存是Mapper级别的缓存,多个SqlSession去操作同一个Mapper的SQL语句,二级缓存是跨SqlSession的,多个SqlSession可以共用二级缓存。与一级缓存的HashMap对象相同,二级缓存的HashMap对象的key由SQL语句、条件、statement等信息组成,HashMap对象的value是查询出的结果对象。 在实际应用中,一级缓存是默认开启的,二级缓存需要手动开启。 初心至善 匠心育人 5.2 一级缓存 5.2.1 一级缓存的原理 5.2.2 一级缓存的应用 目录 Contents 初心至善 匠心育人 5.2 一级缓存 5.2.1 一级缓存的原理 在MyBatis中,如果一级缓存开启,当同一个SqlSession对象多次执行完全相同的SQL语句时,在第一次执行完成后,MyBatis会将查询结果写入到一级缓存,此后,如果程序没有执行插入、更新、删除操作,当第二次执行相同的查询语句时,MyBatis会直接读取一级缓存中的数据。 在实际开发中,如果多次执行同一条SQL语句,例如,从数据表student中查询出sid为1的学生信息,具体过程如图所示。 初心至善 匠心育人 5.2 一级缓存 5.2.1 一级缓存的原理 从图中可以看出,当程序第一次查询sid为1的学生信息时,程序会将结果写入MyBatis一级缓存,当程序第二次查询sid为1的学生信息时,MyBatis将直接从一级缓存中读取。当程序对数据库执行了DML操作,MyBatis会清空一级缓存中的内容以防止程序误读。 初心至善 匠心育人 5.2 一级缓存 5.2.2 一级缓存的应用 上个小节讲解了MyBatis一级缓存的原理,接下来,本节通过一个实例演示MyBatis一级缓存的应用。 1. 数据准备 创建数据库chapter05,在数据库chapter05中创建数据表student,向数据表student中插入学生信息,SQL语句参照第4章4.1.2小节中内容,此处不再具体列出。 2. 创建工程 在Eclipse中新建Web工程chapter05,将MyBatis的驱动jar包(mybatis-3.4.6.jar、mysql-connector-java-5.1.10-bin.jar和lib目录下的jar包)复制到lib目录下,完成jar包的导入。 初心至善 匠心育人 5.2 一级缓存 5.2.2 一级缓存的应用 3. 创建POJO类 在工程chapter05的src目录下创建com.qfedu.pojo包,在com.qfedu.pojo包下创建POJO类Student,具体代码参照第1章例1-1所示内容,此处不再重复列出。 4. 创建配置文件 在src目录下新建配置文件mybatis-config.xml,该文件的代码与第3章例3-5所示代码大致相同,由于要连接的数据库发生变化,此处需要将数据库名称修改为chapter05,另外<mapper></ mapper >内的内容也需要修改,要修改的代码如下所示。 初心至善 匠心育人 5.2 一级缓存 5.2.2 一级缓存的应用 5. 创建映射文件 在工程chapter05的src目录下创建com.qfedu.mapper包,在com.qfedu.mapper包下创建StudentMapper.xml文件,具体代码如例所示。 初心至善 匠心育人 5.2 一级缓存 5.2.2 一级缓存的应用 6. 创建log4j.properties文件 由于需要通过log4j日志组件查看MyBatis一级缓

资源预览图

第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
1
第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
2
第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
3
第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
4
第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
5
第5章 MyBatis缓存处理-【千锋教育】Java EE(SSM框架)企业应用实战
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。