Hibernate二级缓存配置
来源:互联网 发布:java工程师待遇 编辑:程序博客网 时间:2024/05/22 06:45
一、没有配置二级缓存情形
@Test public void test(){ Employee employee = (Employee) session.get(Employee.class, 1); Employee employee2 = (Employee) session.get(Employee.class, 1); System.out.println(employee); System.out.println(employee2); }
因为hibernate缓存的原因,实际上只会发送一条sql语句。
现在再来实验一下,得到employee2前清楚session缓存
@Test public void test2(){ Employee employee = (Employee) session.get(Employee.class, 1); session.clear(); Employee employee2 = (Employee) session.get(Employee.class, 1); System.out.println(employee); System.out.println(employee2); }
Hibernate: select employee0_.ID as ID1_1_0_, employee0_.NAME as NAME2_1_0_, employee0_.DEPT_ID as DEPT_ID3_1_0_ from EMPLOYEES employee0_ where employee0_.ID=?Hibernate: select employee0_.ID as ID1_1_0_, employee0_.NAME as NAME2_1_0_, employee0_.DEPT_ID as DEPT_ID3_1_0_ from EMPLOYEES employee0_ where employee0_.ID=?Employee [id=1]Employee [id=1]
我们看到发送了两条sql语句。
再来看另一种情形
@Test public void test3(){ Employee employee = (Employee) session.get(Employee.class, 1); session.close(); session = sessionFactory.openSession(); Employee employee2 = (Employee) session.get(Employee.class, 1); System.out.println(employee); System.out.println(employee2); }
第二次get之前关闭session,然后开启一个session,前后两个session是不一样的。这样发送了两条select语句。问题:可不可以开启两个不同的session时,如果是相同的OID,则只发送一条sql语句,即对于不同的session,hibernate仍然能够缓存?
答案是配置二级缓存。sessionFactory级别。
2、配置hibernate的二级缓存
(1)导入相应的jra包
ehcache-core-2.4.3.jar
hibernate-ehcache-4.2.4.Final.jar
slf4j-api-1.6.1.jar
(2)配置ehcache.xml文件—使用默认的配置
(3)配置hibernate.cfg.xml文件
①. 启用二级缓存
<property name="cache.use_second_level_cache">true</property>
②.配置使用的二级缓存的产品
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
③.配置启用二级缓存的类
<class-cache usage="read-write" class="com.atguigu.hibernate.entities.Employee"/> <class-cache usage="read-write" class="com.atguigu.hibernate.entities.Department"/>
再执行test3方法时,我们可以看到只发送了一条sql语句。hibernate二级缓存起作用了。
0 0
- hibernate二级缓存的配置
- Hibernate+ehcache二级缓存配置
- hibernate二级缓存的配置
- Hibernate ehcache配置二级缓存
- hibernate二级缓存配置
- hibernate二级缓存配置
- hibernate二级缓存配置
- hibernate如何配置二级缓存
- 配置Hibernate二级缓存--echcache
- hibernate二级缓存配置
- Hibernate配置Ehcache二级缓存
- hibernate 二级缓存配置过程
- Hibernate二级缓存配置
- hibernate二级缓存配置模板
- hibernate的二级缓存配置
- Hibernate二级缓存配置
- hibernate二级缓存配置
- hibernate 二级缓存配置
- 【机器学习】监督和非监督学习
- 软件开发项目成本管理实践
- Linux操作练习 demo(待完善)
- 一个简单登录的Struts2的示例
- boost 1.56.0 编译及使用
- Hibernate二级缓存配置
- HTML5 Web存储方式
- 南北桥芯片
- 关于PostgreSQL向数据库表中添加行数据
- pdf的文字怎么修改可以改变颜色
- 自定义控件之仿启动页右上角的圆形跳过按钮倒计时功能
- 魔方阵
- ????待完善 找不到题目要求了
- 3.9 Swift字典的基本概念