hibernate 二级缓存配置 1.配置hbm.xml 在class节点下面添加 <cache usage="read-write"/>(读写) 或者 <cache usage="read-only"/>(只读) 如: <class name="com.hxy.portal.poststext.JforumPostsText" table="jforum_posts_text" catalog="jforum_bbs"> <cache usage="read-write"/> <id name="postId" type="java.lang.Integer"> <column name="post_id" /> <generator class="identity" /> </id> <property name="postText" type="java.lang.String"> <column name="post_text" length="65535" /> </property> ..... </class> 2.配置spring文件 //打开hibernate二级缓存 hibernate.cache.use_sencond_levl_cache=true //设置缓存加载类 hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider //设置查询缓存 hibernate.cache.use_query_cache=true 具体配置: <bean id="sf_id" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="hibernateProperties"> <value> <!-- 配置hibernate属性 如第一个方言等--> <!-- 1.hibernate.dialect Hibernate SQL方言 表示连接那种数据库 2.hibernate.query.substitutions 你可以使用hibernate.query.substitutions定义新的Hibernate查询短语。比如说: hibernate.query.substitutions true 1, false 0 这个配置意思是当你在Hibernate里面输入true的时候,Hibernate会转化为1插入数据库, 当你在Hibernate里面输入false的时候,Hibernate会转化为0插入数据库,后面的Y,N同理。 对于某些数据库,例如Oracle来说,没有boolean数据类型,就是采用1代表true,0代表false, 因此使用这个配置在Hibernate里面直接用true/false会非常直观。 hibernate.query.substitutions toLowercase=LOWER 这可以让你重新命名SQL的LOWER函数。 3.hibernate.jdbc.batch_size 一个非零值,会开启Hibernate使用JDBC2的批量更新功能取值. 建议值在 5 和 30之间。 4.hibernate.cache.provider_class 指定一个自定义的CacheProvider缓存提供者的类名.取值. classname.of.CacheProvider 5.hibernate.cache.provider_configuration_file_resource_path hibernate缓存文件路径 6.hibernate.cache.use_sencond_levl_cache打开hibernate二级缓存 7.update如果数据库中不存在表则生成,存在如果有增加自动增加,开发使用update,生产一般不设置 --> hibernate.hbm2ddl.auto hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect hibernate.query.substitutions=true 1, false 0 hibernate.jdbc.batch_size=20 hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.cache.use_sencond_levl_cache=true hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider hibernate.cache.use_query_cache=true </value> <!-- hibernate.cache.provider_configuration_file_resource_path 指定缓存文件路径和文件名 --> </property> <!-- hibernate配置文件所在地 便于spring加载hibernate配置文件 --> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/hxy/portal/hibernate</value> </list> </property> </bean> 3.编写ehcache.xml 配置文件 <ehcache> <!-- maxElementsInMemory="10000" 缓存中最大允许创建的对象数 --> <!-- eternal="false" 缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期 --> <!-- timeToIdleSeconds="120" 缓存数据钝化时间(设置对象在它过期之前的空闲时间) --> <!-- timeToLiveSeconds="120" 缓存数据的生存时间(设置对象在它过期之前的生存时间) --> <!-- overflowToDisk="true" 内存不足时,是否启用磁盘缓存 --> <diskStore path="c:\\ehcache\"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" /> </ehcache> 4.使用查询方法 /**** * 根据hql查询List */ public List findCacheListByHql(final String hql) { // TODO Auto-generated method stub return this.getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { // TODO Auto-generated method stub Query queryObject = session.createQuery(hql); //设置是否启用缓存 queryObject.setCacheable(true); if(getHibernateTemplate().getQueryCacheRegion() != null){ queryObject.setCacheRegion(getHibernateTemplate().getQueryCacheRegion()); } return queryObject.list(); } }); } 5.缓存仅仅对hql查询生效,如果使用sql更变数据库数据,缓存数据将不会修改,只用使用hql操作数据库才能同步修改缓存数据。
相关推荐
传播智客,为Spring集成的Hibernate配置二级缓存、cache.xml
为Spring集成的Hibernate配置二级缓存
Spring 整合 Hibernate 时启用二级缓存实例详解 写在前面: 1. 本例使用 Hibernate3 + Spring3; 2. 本例的查询使用了 HibernateTemplate; 1. 导入 ehcache-x.x.x.jar 包; 2. 在 applicationContext.xml ...
struts2+spring+hibernate集成例子,包含所有jar包,ehcache二级缓存,mysql数据,需要自己创建
NULL 博文链接:https://8366.iteye.com/blog/470815
struts1.x+spring+hibernate集成例子,包含所有jar包,ehcache二级缓存,数据库mysql,需要自己创建
此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿...
其中包含apache的log4j记录日志信息,spring管理组件,springmvc分层,springaop配置数据库事务控制,hibernate二级缓存配置,实现了查询,用户登录注册,请求验证是否登录等基础功能Demo,基于后台测试,使用前台...
spring2.5学习PPT 传智...为Spring集成的Hibernate配置二级缓存 30.Spring提供的CharacterEncoding和OpenSessionInView功能 31.使用Spring集成JPA 32.Struts+Spring+JPA集成 33.使用Spring集成Struts2 34.所有源码
此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿...
本篇文章主要介绍了详解spring boot集成ehcache 2.x 用于hibernate二级缓存,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
4、Hibernate集成二级缓存框架Ehcache。 5、数据库是MySQL、Oracle和SQL Server,Hibernate的Dialect可使程序移植到其他数据库。 6、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。 7、采用Google ...
这个是在整合JBPM前,先集成SpringMVC3.2和Hibernate4.2的代码,并配置了二级缓存。
ehcache二级缓存,c3p0连接池,文件上传,dom4j,mysql数据库驱动,jscharts图表统计图走势,JSTL,struts日历控件包,base64加密,Excel文件生成,邮件发送,log4j以及log4j配置文件,mysql数据库连接Properties...
一个struts2hibernate4spring4项目 整合好了的,包括jar包等等,其中有源码,mysql驱动,c3p0,二级缓存,log4j等等
其中包含apache的log4j记录日志信息,spring管理组件,springmvc分层,springaop配置数据库事务控制,hibernate二级缓存配置,实现了查询,用户登录注册,请求验证是否登录等基础功能Demo,基于后台测试,使用前台...
4、Hibernate集成二级缓存框架Ehcache。 5、数据库是MySQL、Oracle和SQL Server,Hibernate的Dialect可使程序移植到其他数据库。 6、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。 7、采用Google ...
实例中有spring整合hibernate的实例,并且配置了hibernate的二级缓存,希望对大家有所帮助