zoukankan      html  css  js  c++  java
  • MyBatis缓存

    一 MyBatis缓存

       /*

       1. MyBatis缓存的分类

       2. 一级缓存: 一级缓存缓存的是SQL语句

       3. 二级缓存:二级缓存缓存的是结果集对象

       */

       1. MyBatis缓存的分类

           1>一级缓存:一级缓存缓存的是SQL语句

           2>二级缓存:二级缓存缓存的是结果集对象

       2. 一级缓存: 一级缓存缓存的是SQL语句

           /*

           1>概念的内涵

           2>获得jack的List<User> users:应用举例

           3>获得jack的List<User> users:解释说明

           */

           1>概念的内涵

                一级缓存缓存的是SQL语句.只有第一个语句提交才能缓存。当条件内容发生

                变化,仍然可以使用缓存。

           2>获得jack的List<User> users:应用举例

                List<User> users = sqlSession.selectList("com.my.mapper.UserMapper.getUser",

                               "jack");

               System.out.println(users);

               //sqlSession.commit(); //①

               List<User> users2 = sqlSession.selectList("com.my.mapper.UserMapper.getUser",

                               "jack");//② 更换为admin,仍然可以缓存

               System.out.println(users);

           3>获得jack的List<User> users:解释说明

               输出只发起一次SQL语句,如果我们把②出的参数jack改为admin,发现还是只发

               起一次SQL语句,但是会设置不同参数,如果把①处去掉注释(语句提交),会发现

               不会有缓存。

       3. 二级缓存:二级缓存缓存的是结果集对象

           /*

           1>概念的内涵

           2>启用二级缓存的配置

           3>获得jack的List<User> users:应用举例

           4>获得jack的List<User> users:解释说明

           */

           1>概念的内涵

                 二级缓存缓存的是结果集对象。

           2>启用二级缓存的配置

                /*

                 <1>MyBatis的全局cache配置

                 <2>在Mapper XML文件中设置缓存,默认情况下是没有开启缓存的

                 <3>在Mapper XML文件配置支持cache后,如果需要对个别查询进行调整,

                    可以单独设置cache

                */

                 <1>MyBatis的全局cache配置

                    <settings>

                        <setting name="cacheEnabled" value="true"/>

                 <2>在Mapper XML文件中设置缓存,默认情况下是没有开启缓存的

                    <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>

                    注意事项:readOnly设为true,默认是false,表示结果集对象需要被序列化

                 <3>在Mapper XML文件配置支持cache后,如果需要对个别查询进行调整,

                    可以单独设置cache

                     <select id="selectAll" resultType="Emp" useCache="true">

           3>获得jack的List<User> users:应用举例

                List<User> users = sqlSession.selectList("com.my.mapper.UserMapper.getUser",

                               "jack");

               System.out.println(users);

               //sqlSession.commit(); //①

               List<User> users2 = sqlSession.selectList("com.my.mapper.UserMapper.getUser",

                               "jack");//② 更换为admin,仍然可以缓存

               System.out.println(users);

           4>获得jack的List<User> users:解释说明

            <1>打开①处注释(执行提交),②处仍然使用jack,发现结果只执行了一次SQL语句

            <2>打开①处注释(执行提交), 如果把②处改为admin,执行了2次SQL语句,这说明

               二级缓存是缓存结果集对象的

  • 相关阅读:
    通联支付相关注意事项
    账号配置vue版本的扫码下单以及对店铺进行装修的步骤
    银盒子扫码下单在线订单开启商品售卖时段使用说明
    ERP承接新后台优惠规则问题
    简易付安装后无法使用
    ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证代码篇
    ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证
    ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
    ASP.NET没有魔法——ASP.NET Identity与授权
    ASP.NET没有魔法——ASP.NET Identity的加密与解密
  • 原文地址:https://www.cnblogs.com/fifiyong/p/5819889.html
Copyright © 2011-2022 走看看