第一步: 在mybatis官方网站上找到mybatis-oscache-1.0.0.jar下载,并加入到工程lib中;
第二步:在mapper.xml文件中的配置如下:
<mapper namespace="com.wsx.assp.sys.commons.dao.SpecialTaskDao" >
<!--缓存配置-->
<cache type="org.mybatis.caches.oscache.OSCache"/>
<!--缓存配置日志-->
< cache type="org.mybatis.caches.oscache.LoggingOSCache"/>
</mapper
第三步:oscache.properties将这个文件放在src目录下,oscache.properties文件可从官网下载,缓存策略设置请参考oscache对jsp全局和局部 缓存配置
使用细节说明:
1.在不需要刷新缓存的方法中加 flushCache="false"
<select id="queryByPage" resultMap="BaseResultMap" parameterType="java.util.Map" flushCache="false">
2.在需要刷新缓存的方法中加 flushCache="true"
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" flushCache="true">
<insert id="insertSelective" parameterType="com.wsx.assp.sys.commons.pojo.SpecialTask" flushCache="true">
<update id="updateByPrimaryKeySelective" parameterType="com.wsx.assp.sys.commons.pojo.SpecialTask"flushCache="true">
3.在不需要启动缓存的方法中加入useCache="false"
<select id="querySpecTaskWorkPlayByList" resultMap="BaseResultMap" parameterType="java.util.Map" useCache="false">
示例代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.wsx.assp.sys.commons.dao.SpecialTaskDao" >
<cache type="org.mybatis.caches.oscache.OSCache"/>
<cache type="org.mybatis.caches.oscache.LoggingOSCache"/>
<resultMap id="BaseResultMap" type="com.wsx.assp.sys.commons.pojo.SpecialTask" >
<id column="id" property="id" jdbcType="VARCHAR" />
</resultMap>
<select id="queryByPage" resultMap="BaseResultMap" parameterType="java.util.Map" useCache="true" flushCache="false">
.....
</select>
<select id="querySpecTaskWorkPlayByList" resultMap="BaseResultMap" parameterType="java.util.Map" useCache="false">
....
</select>
<!-- 根据主键删除下达任务 -->
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" flushCache="true">
.....
</delete>
<insert id="insert" parameterType="com.wsx.assp.sys.commons.pojo.SpecialTask" flushCache="true">
.....
</insert>
<update id="updateByPrimaryKey" parameterType="com.wsx.assp.sys.commons.pojo.SpecialTask" flushCache="true">
....
</update>
</mapper>