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语句,这说明

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

  • 相关阅读:
    AtCoder Grand Contest 001
    在AT151上面测试串口通讯
    i2c tools 使用
    STM32CUBEF4 实现USB 虚拟串口
    SPI总线工作模式
    树莓派3b+ wifi无线连接
    树莓派开机运行Python脚本 控制LED灯闪烁
    树莓派 使用python来操作GPIO 控制LED灯
    解决树莓派新版系统 ssh连接不了问题
    C# textBox控件只允许为数字和小数点并且提取出这个数字
  • 原文地址:https://www.cnblogs.com/fifiyong/p/5819889.html
Copyright © 2011-2022 走看看