ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:37.71KB ,
资源ID:7051546      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7051546.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(hibernate缓存机制.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

hibernate缓存机制.doc

1、Hibernate   缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.    Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升.     Hibernate缓存分类:  Session缓存,一级缓存.  SessionFactory的缓存分为内置缓存和外置缓存.内置缓存中存放的是SessionFactory对象的一

2、些集合属性包含的数据(映射元素据及预定义SQL语句等),对于应用程序来说,它是只读的.外置缓存中存放的是数据库数据的副本,其作用和一级缓存类似.二级缓存除了以内存作为存储介质外,还可以选用硬盘等外部存储设备.  Hibernate的缓存范围  Hibernate的一级缓存和二级缓存都位于均位于持久层,且均用于存放数据库数据的副本,最大的区别就是缓存的范围各不一样.  缓存的范围分为3类:  1.事务范围     事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的生命周期依赖于事务的生命周期,只有当事务结束时,缓存的

3、生命周期才会结束.事务范围的缓存使用内存作为存储介质,一级缓存就属于事务范围.  2.应用范围     应用程序的缓存可以被应用范围内的所有事务共享访问.缓存的生命周期依赖于应用的生命周期,只有当应用结束时,缓存的生命周期才会结束.应用范围的缓存可以使用内存或硬盘作为存储介质,二级缓存就属于应用范围.  3.集群范围     在集群环境中,缓存被一个机器或多个机器的进程共享,缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致,缓存中的数据通常采用对象的松散数据形式.    Hibernate的缓存管理  一级缓存的管理:    e

4、vit(Object obj)  将指定的持久化对象从一级缓存中清除,释放对象所占用的内存资源,指定对象从持久化状态变为脱管状态,从而成为游离对象.    clear()  将一级缓存中的所有持久化对象清除,释放其占用的内存资源    contains(Object obj) 判断指定的对象是否存在于一级缓存中.    flush() 刷新一级缓存区的内容,使之与数据库数据保持同步.    二级缓存的管理:         evict(Class arg0, Serializable arg1)  将某个类的指定ID的持久化对象从二级缓存中清除,释放对象所占用的资源.    

5、 Java代码   1. sessionFactory.evict(Customer.class, new Integer(1));      evict(Class arg0)  将指定类的所有持久化对象从二级缓存中清除,释放其占用的内存资源.     Java代码   1. sessionFactory.evict(Customer.class);      evictCollection(String arg0)  将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源.     Java代码   1. sessionFactory.evic

6、tCollection("Customer.orders");   Hibernate的二级缓存的配置  首先,不是所有的数据都适合放在二级缓存中,看一下,什么样的数据适合放在二级缓存中来?什么样的数据不适合放在二级缓存中来?    下面这几种情况就不适合加载到二级缓存中:    1.经常被修改的数据    2.绝对不允许出现并发访问的数据    3.与其他应用共享的数据    下面这己种情况合适加载到二级缓存中:    1.数据更新频率低    2.允许偶尔出现并发问题的非重要数据    3.不会被并发访问的数据    4.常量数据    5.不会被第三方

7、修改的数据  Hibernate的二级缓存功能是靠配置二级缓存插件来实现的,Hibernate为了集成这些插件,Hibernate提供了org.hibernate.cache.CacheProvider借口,它充当缓存插件与Hibernate之间的适配器 .  常用的二级缓存插件  EHCache  org.hibernate.cache.EhCacheProvider  OSCache  org.hibernate.cache.OSCacheProvider  SwarmCahe  org.hibernate.cache.SwarmCacheProvider  JBoss

8、Cache  org.hibernate.cache.TreeCacheProvider  简单介绍一下EHCache的配置  hibernate.cfg.xml  Xml代码   1.    2.       3.          4.          5.          org.hibernate.cache.EhCac

9、heProvider   6.          7.          8.          9.          true   10.          11.       12.     ehcache.xml  Xml代码   1.    2.      3.      4.        5.

11、ehcache>   ****.hbm.xml  Xml代码   1.    2.    5.    6.    7.         8.    

12、ss>   9.           10.               11.       12.    13.    (1).缓存的优缺点 优点:直接从内存中读取数据,加载速度快,用户体验好。 静态缓存所生成的静态页有利于搜索引擎检索和收录,有利于seo优化。 SEO(Search Eng

13、ine Optimization),汉译为搜索引擎优化。 缺点:容易造成内存耗尽,系统死机。 服务器激动的时候就加载,所以初次启动慢。 静态缓存在生成静态页的时候增加了磁盘的io读写,影响 磁盘的寿命,对硬盘的容量也是很大的跳转。 (2).hibernate常用的插件 EHCache  OSCache  ehcache主要是对数据库访问的缓存,相同的查询语句只需查询一次数据库, 从而提高了查询的速度。 oscache 主要是对页面的缓存,可以整页或者指定网页某一部分缓存,同时指定他的过期时间,这样在此时间段里面访问的数据都是一样的 --好处--

14、 使用内存作为缓存区将可以提供更好的性能 使用硬盘作为缓存区可以在服务器重起后迅速恢复缓存内容 同时使用内存和硬盘作为缓存区则可以减少对内存的占用 (3).常用的连接池及用法 (1).C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass( "org.po

15、stgresql.Driver" ); //loads the jdbc driver cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" ); cpds.setUser("dbuser"); cpds.setPassword("dbpassword"); (2).Proxool是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。

16、可以透明地为你现存的JDBC驱动程序增加连接池功能。 引入 proxool-0.8.3.jar web.xml中 通过servlet初始化连接池             proxoolInitialServlet          org.logicalcobwebs.proxool.configuration.ServletConfigurator                          

17、am-name>xmlFile                  WEB-INF//pool_aspboy.xml                      1     proxool   org.logicalcobwebs.proxool.admin.servlet.Ad

18、minServlet   proxool   /pool/admin 2. 创建配置文件: pool_aspboy.xml       jxc     jdbc:mysql://127.0.0.1:3306/jxc?useUnicode=true&characterEncoding=GBK     com.mysql.jdbc.Driver    

20、iver-properties>                         1     20

21、ction-count>       其中jxc  为别名 调用:  public static Connection getConnection(final String poolName)    throws SQLException {   try {    return DriverManager.

22、getConnection(poolName);   } catch (Exception e) {    return null;   }  } 其中 poolName 传入:  proxool.jxc  就是 proxool.别名 (3).BoneCP 是一个开源的快速的 JDBC 连接池。BoneCP很小,只有四十几K(运行时需要log4j和Google Collections的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。另外个人觉得 BoneCP 有个缺点是,JDBC驱动的加载是在连接池之外的,这样在一些应用服务器的配置上就不够灵活。当然

23、体积小并不是 BoneCP 优秀的原因,BoneCP 到底有什么突出的地方呢,请看看性能测试报告。 方法: 五个包缺一不可  google-collect-1.0-rc4.jar  log4j-1.2.14.jar  slf4j-api-1.5.11.jar  slf4j-log4j12-1.5.11.jar  bonecp-0.6.6.jar 

24、 com.jolbox.bonecp.provider.BoneCPConnectionProvider com.mysql.jdbc.Driver jdbc:mysql://127.0.

25、0.1/yourdb root abcdefgh 240 60 3

26、y="bonecp.acquireIncrement">10 60 20 50 3

27、> Ibates 四种实现的缓存 LRU” : 当 Cache溢出时,最近最少使用的对象将被从 Cache 中清除。 FIFO : 当 Cache 溢出时,最先进入 Cache 的对象将从 Cache 中清除。 OSCACHE : OSCACHE Cache 实现是OSCache2.0缓存引擎的一个 Plugin。它具有高度的可配置性,分布式,高度的灵活性。通过oscahce.properties控制。  flushInterval : 属性是配置自动更新缓存的周期,可以是hours,minutes,seconds或milliseconds。  flushOnExecute

28、 : 这是标识什么时候触发更新,statement的名字就是后面的statement的id。  Statement : 节中设置了cacheModel,就会把这个sql跟cache关联起来。  ibatis中resultMap和resultClass的区别 首先requltmap的值是指定的映射字段配置的id值,其次必须是的数据表中的字段和实体类的属性像对应,如果缺少或者不对应的话就会包缺少字段的错误,即查询的语句查询出来的字段必须和映射的字段相互对应,俗话就是select中查询出来多少字段那么映射配置中(result 属性中)就要有多少数据。便于将此数据封装到对象中,便于运输,例如像j

29、sp文件中遍历数据等操作的时候比较好用。 首先requestClass指定的值为你映射类的别名,在查询的时候不考虑是否一一对应,只要在你定义的bean类中能找到这个属性就行。这样不能直接读出具体的数据,不便于运输。  面试: 这是面试中经常问到的一个问题,楼主可以按照我的思路回答,准你回答得很完美,首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再具体说说Hibernate中缓存的分类情况, 最后可以举个具体的例子。 Hibernate缓存的作用: Hibernate是一个持久层框架,经常访问物理数据库,为了降低应用程序对物理数据源访问的频

30、次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据 Hibernate缓存分类: Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存 Hibernate一级缓存又称为“Session的缓存”,它是内置的,不能被卸载(不能被卸载的意思就是这种缓存不具有可选性,必须有的功能,不可以取消session缓存)。由于Session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。第一级缓存是必需的,不允许而且事实上也无法卸

31、除。在第一级缓存中,持久化类的每个实例都具有唯一的OID。 Hibernate二级缓存又称为“SessionFactory的缓存”,由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。第二级缓存是可选的,是一个可配置的插件,在默认情况下,SessionFactory不会启用这个插件。 什么样的数据适合存放到第二级缓存中?    1 很少被修改的数据    2 不是很重要的数据,允许出现偶尔并发的数据    3

32、 不会被并发访问的数据    4 常量数据    不适合存放到第二级缓存的数据?    1经常被修改的数据    2 .绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发    3 与其他应用共享的数据。 Hibernate查找对象如何应用缓存? 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;如果都查不到,再查询数据库,把结果按照ID放入到缓存 删除、更新、增加数据的时候,同时更新缓存 Hibernate管理缓存实例 无论何时,我们在管理Hibernate缓存(Managing the caches)时,当你给save()、update()或saveOrUpdate()方法传递一个对象时,或使用load()、 get()、list()、iterate() 或scroll()方法获得一个对象时, 该对象都将被加入到Session的内部缓存中。 当随后flush()方法被调用时,对象的状态会和数据库取得同步。 如果你不希望此同步操作发生,或者你正处理大量对象、需要对有效管理内存时,你可以调用evict() 方法,从一级缓存中去掉这些对象及其集合。 843083226

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服