欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (精品)韩顺平hibernate第5讲.ppt

    • 资源ID:85154107       资源大小:269KB        全文页数:20页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (精品)韩顺平hibernate第5讲.ppt

    主讲 韩顺平主讲:韩顺平email:hibernate从入门到精通hibernte 第第5讲讲主讲 韩顺平hibernate 缓存和加强缓存和加强1.懒加载 2.缓存(一级缓存(session缓存)二级缓存(sessionfactory)3.主键生成策略4.Hibernate不适合的场景 hibernate从入门到精通懒加载懒加载主讲 韩顺平 懒加载的概念懒加载(Load On Demand)是一种独特而又强大的数据获取方法,是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较耗时的。hibernate从入门到精通懒加载懒加载主讲 韩顺平 懒加载几种情况(方式)首先我们要明确一点 Domain Object 是非final的,才能实现懒加载。解决懒加载的方法:1.明确初始化在session还没有关闭时,访问一次 xxx.getXxx(),强制访问数据库。或者 Hibernate.initialize(xxx)2.openSessionView 面试/spring-校内网 这个往往需要过滤器配合使用(web程序)。3.在ssh中,可以实现在service层,标注方式解决懒加载.4.在对象映射文件中配置,lazy=“false”hibernate从入门到精通缓存缓存主讲 韩顺平缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存、从缓存中获取数据、删除缓存中的无效数据。一级缓存,Session级共享。save,update,saveOrUpdate,load,get,list,iterate,lock这些方法都会将对象放在一级缓存中,一级缓存不能控制缓存的数量,所以要注意大批量操作数据时可能造成内存溢出;可以用evict,clear方法清除缓存中的内容。二级缓存,SessionFacotry级共享一级缓存案例:用DepartmentEmployee 为例来分析用hashmap来模拟缓存实现的机制(深入了解)hibernate从入门到精通二级缓存二级缓存-sessionfactory级缓存级缓存主讲 韩顺平n hibernate二级缓存插件(组件)一览图hibernate从入门到精通二级缓存二级缓存-sessionfactory级缓存级缓存主讲 韩顺平l应用OsCache作为二级缓存步骤-配置步骤-拷贝一个oscache.propertis配置文件,可以使用参考文档,这里我们可以对各个属性值作一个说明:hibernate从入门到精通二级缓存二级缓存-sessionfactory级缓存级缓存主讲 韩顺平n应用OsCache作为二级缓存步骤-在*.hbm.xml文件中加入使用二级缓存的策略也可以直接在hibernate.cfg.xml配置:hibernate二级缓存策略 只读缓存(read-only)读写缓存(read-write)银行,财务软件 不严格读写缓存(nonstrict-read-write)bbs 被浏览多少次 事务缓存(transactional)n统计信息打开generate_statistics,用sessionFactory.getSatistics()获取统计信息。hibernate从入门到精通主键增长策略主键增长策略主讲 韩顺平hibernate标示符生成器标示符生成器(策略策略)increment indentitysequence hilonative assigneduuid foreignhibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 什么是对象标识符什么是对象标识符(OID object id)(OID object id)Hibernate Hibernate 中的持久化对象对应数据库中的一张数据表,因中的持久化对象对应数据库中的一张数据表,因此区分不同的持久化对象,在此区分不同的持久化对象,在HibernateHibernate中是通过中是通过OID(OID(对象标识符对象标识符)来来完成的,从表的角度看完成的,从表的角度看,OID,OID对应表的主键。从类的角度看对应表的主键。从类的角度看OIDOID对应类对应类的主键属性的主键属性.如图如图:建表建表举例说明举例说明主键属性主键属性其它属性其它属性.主键主键其它属性其它属性1 1其它属性其它属性2 21000010000小明小明2323岁岁1000110001大明大明4545岁岁hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 HibernateHibernate中的主要对象标识生成策略很多,我这里主要介绍中的主要对象标识生成策略很多,我这里主要介绍8 8种标识种标识符生成方法,其中包括符生成方法,其中包括7 7种标识符生成器和一种复合主键生成方式。种标识符生成器和一种复合主键生成方式。incrementincrement标识符生成器标识符生成器由由HibernateHibernate自动以递增方式生成标识符,每次增量为自动以递增方式生成标识符,每次增量为1 1。优点:不依赖于底层数据库系统,适用于所有的数据库系统。优点:不依赖于底层数据库系统,适用于所有的数据库系统。缺点:适用于单进程环境下,在多线程环境下很可能生成相同主键值缺点:适用于单进程环境下,在多线程环境下很可能生成相同主键值,而且,而且OIDOID必须为数值类型必须为数值类型,比如比如long,int,shortlong,int,short类型类型配置方式配置方式:hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 identityidentity标识符生成器标识符生成器由底层数据库生成标识符。由底层数据库生成标识符。前提条件:数据库支持自动增长字段类型前提条件:数据库支持自动增长字段类型,比如比如(sql server,mysql)(sql server,mysql),而且而且OIDOID必须为数值类型必须为数值类型,比如比如long,int,shortlong,int,short类型。类型。配置文件配置文件:hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 sequencesequence标识符生成器标识符生成器依赖于底层数据库系统的序列依赖于底层数据库系统的序列前提条件前提条件:需要数据库支持序列机制(如需要数据库支持序列机制(如:oracle:oracle等)等),而且而且OIDOID必须必须为数值类型为数值类型,比如比如long,int,shortlong,int,short类型。类型。配置文件配置文件:my_seqmy_seq hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 nativenative标识符生成器标识符生成器nativenative生成器能根据底层数据库系统的类型,自动选择合适的标识生成器能根据底层数据库系统的类型,自动选择合适的标识符生成器,因此非常适用于跨数据库平台开发,他会由符生成器,因此非常适用于跨数据库平台开发,他会由HibernateHibernate根据根据数据库适配器中的定义数据库适配器中的定义,自动采用自动采用identity,hilo,sequenceidentity,hilo,sequence的其中一种的其中一种作为主键生成方式,但是作为主键生成方式,但是OIDOID必须为数值类型必须为数值类型(比如比如long,short,intlong,short,int等等)配置文件配置文件:hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 hilohilo标识符生成器标识符生成器hilohilo标识符生成器由标识符生成器由HibernateHibernate按照一种按照一种high/lowhigh/low算法生成标识符,算法生成标识符,他从数据库中的特定表的字段中获取他从数据库中的特定表的字段中获取highhigh值,因此需要额外的数据库表值,因此需要额外的数据库表保存主键生成的历史状态,保存主键生成的历史状态,hilohilo生成方法不依赖于底层数据库,因此适生成方法不依赖于底层数据库,因此适用于每一种数据库用于每一种数据库,但是但是OIDOID必须为数值类型必须为数值类型(long,int,shor(long,int,shor类型类型)。配置文件配置文件:my_hi_value my_hi_value next_value next_value /创建表hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 uuiduuid标识符生成器标识符生成器由由HibernateHibernate基于基于128128位唯一值产生算法,根据当前设备位唯一值产生算法,根据当前设备IPIP,时间,时间,JVMJVM启动时间,内部自增量等启动时间,内部自增量等4 4个参数生成个参数生成1616进制数值作为主键,一般进制数值作为主键,一般而言而言,利用利用uuiduuid方式生成的主键提供最好的数据插入性能和数据库平台方式生成的主键提供最好的数据插入性能和数据库平台适应性适应性.OIDOID一般使用是一般使用是StringString类型类型,大家去试试数值可否大家去试试数值可否?配置文件配置文件:hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 assignedassigned标识符生成器标识符生成器采用采用assignassign生成策略表示由应用程序逻辑来负责生成主键标识符生成策略表示由应用程序逻辑来负责生成主键标识符,OIDOID类型没有限制。类型没有限制。配置文件配置文件:hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 映射复合主键映射复合主键略讲略讲为了讲解复合主键为了讲解复合主键,我们先建一张表我们先建一张表:create table CUSTOMERS (CUSNAME VARCHAR2(40)not null,HOMEADDRESS VARCHAR2(50)not null,BIRTHDAY DATE not null,SEX VARCHAR2(2),CUSCOMPANY VARCHAR2(40)设置复合主键设置复合主键 alter table CUSTOMERS add constraint CUS_PK primary key(CUSNAME,HOMEADDRESS,BIRTHDAY)hibernate从入门到精通主键增长策略主键增长策略-hibernate对象标识符对象标识符主讲 韩顺平 对象标识符生成方法对象标识符生成方法 映射复合主键映射复合主键略讲略讲第一种方式第一种方式:以独立主键类映射复合主键,这样可以达到将逻辑加以以独立主键类映射复合主键,这样可以达到将逻辑加以隔离的目的隔离的目的,配置文件如下:配置文件如下:hibernate从入门到精通Hibernate不适合的场景不适合的场景主讲 韩顺平l不适合OLAP(On-Line Analytical Processing联机分析处理),以查询分析数据为主的系统;适合OLTP(on-line transaction processing联机事务处理)。l对于些关系模型设计不合理的老系统,也不能发挥hibernate优势。l数据量巨大,性能要求苛刻的系统,hibernate也很难达到要求,批量操作数据的效率也不高。hibernate从入门到精通

    注意事项

    本文((精品)韩顺平hibernate第5讲.ppt)为本站会员(gsy****95)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开