mybatis的二级缓存

来源:互联网 发布:淘宝发布宝贝最佳时间 编辑:程序博客网 时间:2024/05/18 03:58

1、在classpath下的configuration文件中开启二级缓存

configuration.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<settings>
<!-- 全局映射器启用缓存 -->
<setting name="cacheEnabled" value="true" />

<!-- 查询时,关闭关联对象即时加载以提高性能 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允许使用列标签代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 对于批量更新操作缓存SQL以提高性能 -->
<setting name="defaultExecutorType" value="BATCH" />
<!-- 数据库超过25000秒仍未响应则超时 -->
<setting name="defaultStatementTimeout" value="25000" />
</settings>
</configuration>

2、在spring-mybatis.xml中引入configuration.xml


3、二级缓存以mapper为独立单位,哪个select需要用到二级缓存,所对应的mapper就应该进行配置

mapper ——> ChapterByEMapper.xml

<mapper namespace="main.java.ExamSystem.dao.ChapterTabDao">
<cache></cache>
<resultMap id="chapterTab" type="ChapterTab">
<result property="chapterId" column="CHAPTER_ID" />
<result property="chapterNameCode" column="CHAPTER_NAME_CODE" />
<result property="chapterName" column="CHAPTER_NAME" />
<result property="professionalTypeCode" column="PROFESSIONAL_TYPE_CODE" />
<result property="professionalName" column="PROFESSIONAL_NAME" />

..................



配置成功后,第二次跑select将不会再走数据库   看打印日志  将不会打印sql

原创粉丝点击