欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis二級(jí)緩存的實(shí)現(xiàn)代碼

 更新時(shí)間:2017年10月08日 14:35:46   作者:Pororo  
這篇文章主要為大家詳細(xì)介紹了mybatis二級(jí)緩存的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

二級(jí)緩存需要手動(dòng)的配置和開啟,具體如下

在總的配置件中設(shè)置開啟二級(jí)緩存
/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標(biāo)簽-->
 <settings>
    <!-- 開啟二級(jí)緩存 -->
   <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>

光開這個(gè)還沒用,還需要在每個(gè)映射XML文件里 開啟這樣個(gè)標(biāo)簽

/Mybatis02/config/mappers/GoodsInfoMapper.xml

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

總結(jié)

2.1在總的配置件中設(shè)置開啟二級(jí)緩存

/Mybatis02/config/mappers/GoodsInfoMapper.xml

<!-- 想要當(dāng)前查詢支持二級(jí)緩存 需要在標(biāo)簽 加入 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);
    //創(chuàng)建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //true表示自動(dòng)提交。否則需要使用commit方法才會(huì)提交。默認(rèn)是false
    SqlSession session = sqlSessionFactory.openSession();
    
    //拿到接口的代理對(duì)象
    GoodsDao2 dao=session.getMapper(GoodsDao2.class);
    //拿到了dao這個(gè)對(duì)象接下來就可以創(chuàng)建sql語(yǔ)句了;(直接調(diào)用接口方法)
    long s1 = System.currentTimeMillis();
    List list = dao.selAll();
    System.out.println(list);
    long e1 =System.currentTimeMillis();
    System.out.println("第一次查詢時(shí)間:"+(e1-s1));
    
    //再做一次重復(fù)查詢,測(cè)試下執(zhí)行時(shí)間
    SqlSession session2 = sqlSessionFactory.openSession(); 
    //拿到接口的代理對(duì)象
    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("第一次查詢時(shí)間:"+(e2-s2));
  
    //如果上面不設(shè)置自動(dòng)提交表單,那么就需要commit方法
    session.commit();
  }

}

 點(diǎn)擊運(yùn)行

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

在新的SqlSession對(duì)象,使用二級(jí)緩存中的數(shù)據(jù)的時(shí)候,需要先將前面的SqlSession對(duì)象關(guān)閉,數(shù)據(jù)才會(huì)進(jìn)入二級(jí)緩存

public class Start2 {

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

}

點(diǎn)擊運(yùn)行

這個(gè)才是二級(jí)緩存。第一次的已經(jīng)close掉了 。第二次它讀取了二級(jí)緩存中的數(shù)據(jù),并沒有自己再重新發(fā)新的SQL語(yǔ)句。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot中的@RequestMapping注解的用法示例

    SpringBoot中的@RequestMapping注解的用法示例

    @RequestMapping注解是SpringBoot中最常用的注解之一,它可以幫助開發(fā)者定義和處理HTTP請(qǐng)求,本篇文章我們將詳細(xì)為大家介紹如何使用SpringBoot中的@RequestMapping注解,感興趣的同學(xué)跟著小編一起來學(xué)習(xí)吧
    2023-06-06
  • druid?handleException執(zhí)行流程源碼解析

    druid?handleException執(zhí)行流程源碼解析

    這篇文章主要為大家介紹了druid?handleException執(zhí)行流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java使用easyExcel批量導(dǎo)入數(shù)據(jù)詳解

    Java使用easyExcel批量導(dǎo)入數(shù)據(jù)詳解

    這篇文章主要介紹了Java使用easyExcel批量導(dǎo)入數(shù)據(jù)詳解,通常我們會(huì)提供一個(gè)模板,此模塊我們可以使用easyExcel導(dǎo)出數(shù)據(jù)生成的一個(gè)Excel文件當(dāng)作模板,提供下載鏈接,用戶在該文件內(nèi)填入規(guī)定的數(shù)據(jù)格式以后可以批量導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫(kù)中,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明

    關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明

    這篇文章主要介紹了關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • JPA中EntityListeners注解的使用詳解

    JPA中EntityListeners注解的使用詳解

    這篇文章主要介紹了JPA中EntityListeners注解的使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Mybatis一對(duì)一延遲加載實(shí)現(xiàn)過程解析

    Mybatis一對(duì)一延遲加載實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Mybatis一對(duì)一延遲加載實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • futuretask源碼分析(推薦)

    futuretask源碼分析(推薦)

    這篇文章主要介紹了futuretask源碼分析(推薦),小編覺得還是挺不錯(cuò)的,這里給大家分享下,供各位參考。
    2017-10-10
  • Java中將MultipartFile和File互轉(zhuǎn)的方法詳解

    Java中將MultipartFile和File互轉(zhuǎn)的方法詳解

    我們?cè)陂_發(fā)過程中經(jīng)常需要接收前端傳來的文件,通常需要處理MultipartFile格式的文件,今天來介紹一下MultipartFile和File怎么進(jìn)行優(yōu)雅的互轉(zhuǎn),需要的朋友可以參考下
    2023-10-10
  • SpringBoot后端接收數(shù)組對(duì)象的實(shí)現(xiàn)

    SpringBoot后端接收數(shù)組對(duì)象的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot后端接收數(shù)組對(duì)象的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Struts2學(xué)習(xí)手冊(cè)之文件上傳基礎(chǔ)教程

    Struts2學(xué)習(xí)手冊(cè)之文件上傳基礎(chǔ)教程

    Struts2提供的文件上傳下載機(jī)制十分簡(jiǎn)便,使得我們寫很少的代碼,下面這篇文章主要給大家介紹了關(guān)于Struts2學(xué)習(xí)手冊(cè)之文件上傳的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05

最新評(píng)論