zl程序教程

您现在的位置是:首页 >  其他

当前栏目

如何使用mybatis缓存

2023-03-15 22:05:55 时间

1 一级缓存

	一级缓存默认是开启的

2 二级缓存

开启二级缓存需要设置两个地方

  • settings设置

设置mybatis-config.xml参数

<configuration>

    <settings>
        <!--      cacheEnabled默认为true  -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">
                <property name="" value=""/>
            </transactionManager>
            <dataSource type="UNPOOLED">
                <property name="driver" value="org.hsqldb.jdbcDriver"/>
                <property name="url" value="jdbc:hsqldb:mem:cache"/>
                <property name="username" value="sa"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="Mapper.xml"/>
    </mappers>

</configuration>
  • cache参数配置 需要在mapper.xml中添加cache配置
<mapper namespace="Mapper">
    <cache/>

    <!--    flushCache参数的作用是同时关闭一级缓存和二级缓存, 默认是false-->
    <!--    对二级缓存的细粒度控制,当前select语句是否使用二级缓存,useCache默认为true-->
    <select id="getAllUsers" resultMap="results" flushCache="false" useCache="true">
        select *
        from users
    </select>

    <resultMap type="User" id="results">
        <id column="id" property="id"/>
        <result property="name" column="name"/>
    </resultMap>

    <insert id="addUser">
        insert into users(id, name)
        values (#{id}, #{name})
    </insert>

</mapper>

可以通过代码调试观察日志,看缓存使用的情况

在这里插入图片描述

可以下载代码调试更加直观的理解缓存使用:github代码