当前位置: 首页 > news >正文

泗水做网站html友情链接代码

泗水做网站,html友情链接代码,深圳网站建设哪个公司号,做鞋用什么网站好Hibernate提供的缓存 有一级缓存、二级缓存。 目的是为了减少对数据库的访问次数,提升程序执行效率! 一级缓存: 基于Session的缓存,缓存内容只在当前session有效,session关闭,缓存内容失效! 特点…

Hibernate提供的缓存

         有一级缓存、二级缓存。 目的是为了减少对数据库的访问次数,提升程序执行效率!

 

一级缓存:

         基于Session的缓存,缓存内容只在当前session有效,session关闭,缓存内容失效!

         特点:

                   作用范围较小! 缓存的事件短。

                   缓存效果不明显。

概述

二级缓存:

         Hibernate提供了基于应用程序级别的缓存, 可以跨多个session,即不同的session都可以访问缓存数据。 这个缓存也叫二级缓存。

         Hibernate提供的二级缓存有默认的实现,且是一种可插配的缓存框架!如果用户想用二级缓存,只需要在hibernate.cfg.xml中配置即可;不想用,直接移除,不影响代码。

         如果用户觉得hibernate提供的缓存框架不好用,自己可以换其他的缓存框架或自己实现缓存框架都可以。

        

使用二级缓存

查看hibernate.properties配置文件,二级缓存如何配置?

 

##########################

### Second-level Cache ###

##########################

 

#hibernate.cache.use_second_level_cachefalse【二级缓存默认不开启,需要手动开启】

#hibernate.cache.use_query_cache true      【开启查询缓存】

 

## choose a cache implementation                   【二级缓存框架的实现】

 

#hibernate.cache.provider_classorg.hibernate.cache.EhCacheProvider

#hibernate.cache.provider_classorg.hibernate.cache.EmptyCacheProvider

hibernate.cache.provider_classorg.hibernate.cache.HashtableCacheProvider 默认实现

#hibernate.cache.provider_classorg.hibernate.cache.TreeCacheProvider

#hibernate.cache.provider_class org.hibernate.cache.OSCacheProvider

#hibernate.cache.provider_classorg.hibernate.cache.SwarmCacheProvider

 

二级缓存,使用步骤

1) 开启二级缓存

2)指定缓存框架

3)指定那些类加入二级缓存

4)测试

         测试二级缓存!

 

缓存策略

 

<class-cacheusage="read-only"/>     放入二级缓存的对象,只读;

         <class-cacheusage="nonstrict-read-write"/> 非严格的读写

         <class-cacheusage="read-write"/>    读写; 放入二级缓存的对象可以读、写;

         <class-cacheusage="transactional"/>   (基于事务的策略)

 

 

集合缓存

<!-- 集合缓存[集合缓存的元素对象,也要加入二级缓存] -->

      <collection-cache

usage="read-write" collection="cn.itcast.b_second_cache.Dept.emps"/>

 

查询缓存

list() 默认情况只会放入缓存,不会从一级缓存中取!

   使用查询缓存,可以让list()查询从二级缓存中取!


 下面是hibernate.cfg.xml的配置信息:

<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><!-- 通常,一个session-factory节点代表一个数据库 --><session-factory><!-- 1.数据库连接配置 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hib-demo</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><!--数据库方法配置,hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql  --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 2.其他相关配置 --><!--2.1显示hibernate在运行的时候执行的sql语句  --><property name="hibernate.show_sql">true</property><!-- 2.2格式化sql --><property name="hibernate.format_sql">true</property><!--    2.3自动建表  --><property name="hibernate.hbm2ddl.auto">update</property><!--****************** 【连接池配置】****************** --><!-- 配置连接驱动管理类 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- 配置连接池参数信息 --><property name="hibernate.c3p0.min_size">2</property><property name="hibernate.c3p0.max_size">4</property><property name="hibernate.c3p0.timeout">5000</property><property name="hibernate.c3p0.max_statements">10</property><property name="hibernate.c3p0.idle_test_period">30000</property><property name="hibernate.c3p0.acquire_increment">2</property><!--****************** 【二级缓存配置】****************** --><!-- a.  开启二级缓存 --><property name="hibernate.cache.use_second_level_cache">true</property><!-- b. 指定使用哪一个缓存框架(默认提供的) --><property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property><!-- 开启查询缓存 --><property name="hibernate.cache.use_query_cache">true</property><!-- c. 指定哪一些类,需要加入二级缓存 --><class-cache usage="read-write" class="cn.itcast.b_second_cache.Dept"/><class-cache usage="read-only" class="cn.itcast.b_second_cache.Employee"/><!-- 集合缓存[集合缓存的元素对象,也加加入二级缓存] --><collection-cache usage="read-write" collection="cn.itcast.b_second_cache.Dept.emps"/><!-- 3.加载所有映射 <mapping resource="cn/itcast/a_hello/Employee.hbm.xml"/>--></session-factory>
</hibernate-configuration>

junit测试


package cn.itcast.b_second_cache;import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;public class App {private static SessionFactory sf;static {sf = new Configuration().configure().addClass(Dept.class)   .addClass(Employee.class)   // 测试时候使用.buildSessionFactory();}// 1. 测试二级缓存的使用// 没有/有用 二级缓存@Testpublic void testCache() {Session session1 = sf.openSession();session1.beginTransaction();// a. 查询一次Dept dept = (Dept) session1.get(Dept.class, 10);dept.getEmps().size();// 集合session1.getTransaction().commit();session1.close();System.out.println("------");// 第二个sessionSession session2 = sf.openSession();session2.beginTransaction();// a. 查询一次dept = (Dept) session2.get(Dept.class, 10);  // 二级缓存配置好; 这里不查询数据库dept.getEmps().size();session2.getTransaction().commit();session2.close();}@Testpublic void listCache() {Session session1 = sf.openSession();session1.beginTransaction();// HQL查询  【setCacheable  指定从二级缓存找,或者是放入二级缓存】Query q = session1.createQuery("from Dept").setCacheable(true);System.out.println(q.list());session1.getTransaction().commit();session1.close();Session session2 = sf.openSession();session2.beginTransaction();q = session2.createQuery("from Dept").setCacheable(true);System.out.println(q.list());  // 不查询数据库: 需要开启查询缓存session2.getTransaction().commit();session2.close();}
}


http://www.hkea.cn/news/358137/

相关文章:

  • 网站有备案 去掉备案网络营销意思
  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo
  • 中企动力沈阳分公司seo免费诊断电话
  • 网站vps被黑湖人最新排名最新排名
  • 如何夸奖客户网站做的好seo课程心得体会
  • 有哪些做电子商务的网站时空seo助手
  • 临沂百度网站电脑培训机构哪个好
  • 无锡专业做网站的公司怎样把自己的产品放到网上销售
  • 大学网站建设管理办法推广技巧
  • 长春做网站公司seo关键词排名优化软件怎么选
  • 网站开发未按合同约定工期完工seo关键词排名怎么提升
  • 创可贴app海报制作网站百度seo优化方法
  • 龙岗品牌网站建设2024年新闻摘抄
  • 南阳住房和城乡建设厅网站招聘网站排名
  • 如何做网站活动封面建站的公司
  • 温州网站建设培训营销推广方案包括哪些内容
  • 厦门 建网站商业软文案例