91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis二級緩存的實現代碼

發布時間:2020-10-03 20:03:33 來源:腳本之家 閱讀:151 作者:Pororo 欄目:編程語言

二級緩存需要手動的配置和開啟,具體如下

在總的配置件中設置開啟二級緩存
/Mybatis02/config/mybatis-conf.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!-- 新增settings標簽-->
 <settings>
    <!-- 開啟二級緩存 -->
   <settring name="cacheEnabled" value="true"/>
 
 </settings>

 <environments default="development">
  <environment id="development">
   <transactionManager type="JDBC"/>
   <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/hkgoods"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
   </dataSource>
  </environment>
 </environments>
 <mappers>
  <mapper resource="mappers/GoodsInfoMapper.xml"/>
  <mapper resource="mappers/NationMapper.xml"/>
 </mappers>
</configuration>

光開這個還沒用,還需要在每個映射XML文件里 開啟這樣個標簽

/Mybatis02/config/mappers/GoodsInfoMapper.xml

mybatis二級緩存的實現代碼

沒完,還有第三步。要讓我們的實體類,(也就是JaveBean)實現一個系列化接口

mybatis二級緩存的實現代碼

總結

2.1在總的配置件中設置開啟二級緩存

mybatis二級緩存的實現代碼

/Mybatis02/config/mappers/GoodsInfoMapper.xml

<!-- 想要當前查詢支持二級緩存 需要在標簽 加入 useCache="true-->
 <select id="selAll" resultType="com.chen.GoodsInfo" useCache="true">
  select ID e_id,name e_name,image e_image from goods 
 </select>

/Mybatis02/src/test/Start2.java

public class Start2 {

  public static void main(String[] args) throws IOException {
    
    String resource = "mybatis-conf.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //創建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //true表示自動提交。否則需要使用commit方法才會提交。默認是false
    SqlSession session = sqlSessionFactory.openSession();
    
    //拿到接口的代理對象
    GoodsDao2 dao=session.getMapper(GoodsDao2.class);
    //拿到了dao這個對象接下來就可以創建sql語句了;(直接調用接口方法)
    long s1 = System.currentTimeMillis();
    List list = dao.selAll();
    System.out.println(list);
    long e1 =System.currentTimeMillis();
    System.out.println("第一次查詢時間:"+(e1-s1));
    
    //再做一次重復查詢,測試下執行時間
    SqlSession session2 = sqlSessionFactory.openSession(); 
    //拿到接口的代理對象
    GoodsDao2 dao2=session2.getMapper(GoodsDao2.class);
    long s2 = System.currentTimeMillis();
    List list2 = dao2.selAll();
    System.out.println(list2);
    long e2 =System.currentTimeMillis();
    System.out.println("第一次查詢時間:"+(e2-s2));
  
    //如果上面不設置自動提交表單,那么就需要commit方法
    session.commit();
  }

}

 點擊運行

mybatis二級緩存的實現代碼

第二次,并沒有從緩存中取數據,而是又重新發出了一條SQL語句查詢。那么這是什么問題?

在新的SqlSession對象,使用二級緩存中的數據的時候,需要先將前面的SqlSession對象關閉,數據才會進入二級緩存

public class Start2 {

  public static void main(String[] args) throws IOException {
    
    String resource = "mybatis-conf.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //創建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //true表示自動提交。否則需要使用commit方法才會提交。默認是false
    SqlSession session = sqlSessionFactory.openSession();
    
    //拿到接口的代理對象
    GoodsDao2 dao=session.getMapper(GoodsDao2.class);
    //拿到了dao這個對象接下來就可以創建sql語句了;(直接調用接口方法)
    long s1 = System.currentTimeMillis();
    List list = dao.selAll();
    System.out.println(list);
    long e1 =System.currentTimeMillis();
    System.out.println("第一次查詢時間:"+(e1-s1));
    
    
    //在新的SqlSession對象,使用二級緩存中的數據的時候,需要先將前面的SqlSession對象關閉,數據才會進入二級緩存
    session.close();
    //再做一次重復查詢,測試下執行時間
    SqlSession session2 = sqlSessionFactory.openSession(); 
    //拿到接口的代理對象
    GoodsDao2 dao2=session2.getMapper(GoodsDao2.class);
    long s2 = System.currentTimeMillis();
    List list2 = dao2.selAll();
    System.out.println(list2);
    long e2 =System.currentTimeMillis();
    System.out.println("第一次查詢時間:"+(e2-s2));
    
\
    //如果上面不設置自動提交表單,那么就需要commit方法
    session.commit();
  }

}

點擊運行

mybatis二級緩存的實現代碼

這個才是二級緩存。第一次的已經close掉了 。第二次它讀取了二級緩存中的數據,并沒有自己再重新發新的SQL語句。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正镶白旗| 岑巩县| 乌苏市| 夹江县| 水富县| 石棉县| 崇明县| 贵定县| 樟树市| 和静县| 安阳市| 保亭| 横峰县| 玉门市| 高州市| 赤水市| 基隆市| 烟台市| 卢氏县| 类乌齐县| 左云县| 上虞市| 肥东县| 额济纳旗| 荥经县| 凤山县| 永州市| 浦北县| 德兴市| 鄂伦春自治旗| 佛教| 宝坻区| 黑水县| 保康县| 武川县| 五常市| 凭祥市| 兰西县| 资中县| 时尚| 南安市|