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

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

  • 相关阅读:
    Android中获取网络图片的三种方法
    关于android性能,内存优化
    web端调用Android端方法的过程
    [程序猿感悟] [悟] 两篇不错的文章 (转载自 stay4it )
    ListView 中使用onItemClick和onItemLongClick的常见问题
    TextView 在java中使用Html设置字体大小颜色
    Android-手机端开发用界面原型与布局工具
    Android Service完全解析,关于服务你所需知道的一切(下)
    Android Service完全解析,关于服务你所需知道的一切(上)
    (转 todo阅读)Android 官方博客
  • 原文地址:https://www.cnblogs.com/fifiyong/p/5819889.html
Copyright © 2011-2022 走看看