hibernate二级缓存(xml写法)

来源:互联网 发布:雅居乐找软件测试 编辑:程序博客网 时间:2024/05/18 02:37

如果想使用二级缓存的话,要使用jar文件,maven导入下面这个代码

<!-- 二级缓存导的包 -->        <dependency>            <groupId>org.hibernate</groupId>            <artifactId>hibernate-ehcache</artifactId>            <version>5.0.7.Final</version>        </dependency>

hibernate.cfg.xml中配置

<?xml version="1.0" encoding="UTF-8"?><!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>        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sxt</property>        <property name="hibernate.connection.username">root</property>        <property name="hibernate.connection.password">123456</property>        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>        <property name="hibernate.show_sql">true</property>        <!-- 启用二级缓存 -->        <property name="cache.use_second_level_cache">true</property>        <!-- 配置二级缓存的区域 -->        <property name="cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>        <mapping class="com.sxt.beans.Buser" />        <mapping resource="com/sxt/beans/Right.hbm.xml" />        <mapping resource="com/sxt/beans/Role.hbm.xml" />        <mapping resource="com/sxt/beans/User.hbm.xml" />    </session-factory></hibernate-configuration>

还要声明你要开启那个bean的二级缓存,也就是你要在bean对应的.hbm.xml中配置上这个话<cache usage="read-write" />
下面这个就是在userbean对应的User.hbm.xml文件中配置的

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- 用户表 --><hibernate-mapping>    <class name="com.sxt.beans.User" table="t_user">    <!-- 声明配置的是读和写 -->        <cache usage="read-write" />        <id name="userid">            <generator class="identity"></generator>        </id>        <property name="userName"></property>        <property name="userPass"></property>        <!-- 和权限表之间的关系 -->        <many-to-one name="role" column="roleld" class="com.sxt.beans.Role"></many-to-one>    </class></hibernate-mapping>

测试

package com.sxt.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.MetadataSources;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.service.ServiceRegistry;import com.sxt.beans.User;/** * 二级缓存 *  * @author Administrator *  */public class Test {    public static void main(String[] args) {        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()                .configure().build();        // 获取sessionFactory对象        SessionFactory sessionFactory = new MetadataSources(serviceRegistry)                .buildMetadata().buildSessionFactory();        // 获取会话对象        Session session = sessionFactory.openSession();        Transaction tran = session.beginTransaction();        User u = session.get(User.class, 5);        System.out.println(u.getUserName());        tran.commit();        session.close();        Session session1 = sessionFactory.openSession();        Transaction tran1 = session1.beginTransaction();        User u2 = session1.get(User.class, 5);        System.out.println(u2.getUserName());        tran1.commit();        session1.close();    }}

//测试,如果第二次查询的时候没有去数据库查询, 就说明配置成功了,注意是生成了两个session 不是两个sessionFactory,二级缓存的数据就是存在sessionFactory里面的

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 爱日导航网 柠檬导航网 神马导航网 首页神马导航网 500褔利导航网 骑士网导航 褔利导航网 第一福利所导航网 500导航网 导航网招标网 招标采购导航网 qq技术网导航 青蛙导航网 k频道网坵导航 k频道国产网红主播导航 qq技术网导航天下 首页一神马导航网 导航网招标 网销导航 采购导航网 设计导航网 网止导航 综合导航网 网贷平台导航 导航网源码 温儒雅新一代导航网 中国招标采购导航网 导航键 导航键怎么设置 手机导航键在哪里设置 怎么取消导航键 国内在线100页导航 导航页 南阳理工学院常用导航页 输卵管导丝介入再通术 小区导视牌 超市导视牌 导视牌制作 公园导视牌设计 室内导视牌设计 设计导视牌