Hibernate在解决性能问题方面做得非常好。本文讲述使用hibernate的11大优势。

Hibernate在处理功用问题方面做得十分好。有了它的缓存机制,运用第三方缓存和数据库连接池,就较好的处理的功用问题。但这些还不行,hibernate给了开发者满意的自在,让开发者自己去操控功用问题。

运用hibernate的11大优势(hibernate的优点)  hibernate 缓存机制 开发者 第1张

学习了一段时间的ibatis,我觉得hibernate有着ibatis无法替代的优势。

1、开发者都知道,hibernate让咱们以oo的方法操作数据库,这让咱们看到了hibernate的强壮之处,体会到操作数据的便利。但Gavin King说,hibernate最耀眼之处是hibernate的缓存机制,而不是以oo的方法操作数据库。Hibernate的缓存机制不外乎是一级缓存session,二级缓存sessionFactory,和第三方缓存如ehcache。也便是hibernate的***大的当地是它的缓存,了解了这个才干真实的了解hibernate。缓存真实太难了,我至今未能真实了解。

2、可保护性:ibatis宣传写sql句子,它将sql句子放进一个独自的xml文件,这种方法赢得了许多开发者的喜欢,一句话,便利保护。但hibernate相同具有这种功用,并且比ibatis愈加强壮。Hibernate的命名查询/命名参数查询,便是将hql句子放在一个独自的xml文件之中,它依然让人们以面向目标的方法去操作数据,这得到许多遵从oo方法开发者的喜欢,而不用在以oo的方法写着代码的一起,然后再改动思想,用面向联系的方法去写那些sql句子。但hibernate不只做了这些,它的native sql查询方法,彻底满意sql句子的偏心者,它像ibatis相同,将sql句子放在装备文件之中。

3、功用:我深信,hibernate功用问题不是问题。想想那么多大中小项目都在运用hibernate,你还置疑hibernate的功用吗?spring整合hibernate之后,在真实功用瓶颈的当地,彻底能够运用spring集成的jdbc,或直接写存储进程得了。但首要得承认,这真实是功用瓶颈的当地,我想,不该想当然的以为功用的问题,所谓的功用问题阻遏了许多人。

我以为,功用的好坏无外是发送sql句子的多少罢了。功用好,发送的sql句子少,功用差,便是发送许多的sql句子。Hibernate在处理功用问题方面做得十分好。

有了它的缓存机制,运用第三方缓存和数据库连接池,就较好的处理的功用问题。

但这些还不行,hibernate给了开发者满意的自在,让开发者自己去操控功用问题。

我以为开发者能够在以下几个方面自行调优:

a、在查询字符串中,应该总是运用jdbc的占位符?,或运用运用命名参数:,不要自查询中运用字符串值来替代十分量值。

b、Flush会影响功用,频频改写影响功用,尽量削减不必要的改写。

c、Cascade战略,在几对几的联系,正确设置cascade战略,想清楚在操作目标A的一起是否需求级联操作目标B,比如在one to many的父子联系中,删去了父亲one,需级联删去子many,这时的one这端可设置cascade = “delete”,这样在删去one时,会主动删去子,但对子的操作不会影响父。Cascade还有其他的特色值,只需设置正确,可提高功用。

d、lazy战略,正确设置推迟加载战略相同会提高功用,在one to many或many to many中,一般总应该推迟加载many的一方的到内存。设置了lazy = “true”,首要发送sql句子,加载自己到内存,到需求时才加载级联目标;lazy=”false”,则会一起加载自己和级联目标到内存。

e、别的还有调集的功用(set、list、map、array),都应正确设置。

f、正确运用第三方缓存,在读操作频频写操作不多的状况,运用第三方缓存可大起伏提高功用,如ehcache的缓存战略有:read-only,read-write和notstrict-read-write。

f、 跟着hibernate新版本的发布,和技能的开展,我信任hibernate的功用会越来越好,全部功用不是不运用hibernate的原因。

4、hibernate不只仅作为耐久层的orm结构存在,它除了dao层的耐久化操作外,还有许多。

在注解annotation现已走向干流的今日,hibernate 敏捷呼应,让xml布置描述符成为可选的。Hibernate annotation 对大字段的处理仅仅一个@Lob就搞定了。

hibernate search对Lucene进行了轻量级的封装,全文检索变得十分简略。

Hibernate validator被以为是最合理的验证方法,将验证战略直接附在贯穿各层的范畴模型domain上,不再需求哪些web结构的xml方法的验证,代码中不再呈现许多的非空/null的判别。

5、jbpm, Jbpm业务流程引擎的耐久层选用hibenrnate来完成,要想运用jbpm,hibernate是有必要的。我想,业务流程办理无比重要,在soa敏捷开展的今日,假如施行soa项目,业务流程办理是必定和有必要的。由于soa便是业务和it技能的交融,是业务流程办理和it根底架构的交融。在soa中,业务办理是***位的,这需求相应的技能来完成该业务流程办理。开源范畴的jbpm我想会是***。所以,为了将来有或许施行soa项目,为了完成soa的业务流程办理,应该运用hibernate。

6、咱们都知道,hibernate将ejb2年代的实体bean赶进了前史,而ejb3的jpa标准也只不过是hibernate的子集罢了。jsr标准恳求的威力是巨大的,没有各种jsr标准恳求,就不会有各种运用程序结构,各种运用程序结构仅仅那些jsr标准恳求的完成者。jpa作为耐久层的标准标准,引导耐久层orm结构的方向,jpa相同以面向目标的方法操作数据库,而不是写sql句子。标准标准都彻底orm,不写sql了,你还有理由不跟着它吗?

7、Spring+hibernate+范型+可变参数,这是一个十分强壮的组合,对应一般的crud操作,你不再需求重复写那些烦人的类似的dao层和manager层的代码,仅仅需求写一次,就完成了全部许多的crud操作。Ibatis虽然也支撑范型,但一直没有hibernate支撑的好

8、Jboss,hibernate是jboss的项目,jboss的全部项目的耐久层都选用的hibernate,要知道,jsr标准组的专家们大多数是来自jboss的,在必定程度上说,jboo***着java的开展方向。运用hibernate,跟着jboss,不违背java的开展方向。

9、Gavin King,我最崇拜的偶像,他不只发明晰强壮的hibernate,还搞出了相同强壮且高雅的web2.0运用程序结构seam。他是ejb3.0专家组成员之一,是jpa标准恳求的***,他java范畴最有发言权、最威望的***人物之一。现在,他领导web bean的,jsr299的开展,web bean标准的拟定,全球软件巨头如ibm、oracle、bea和apache没有一个对立,纷繁呼应。Web bean,幻想起来,真实太美好了,彻底的松耦合和强类型,全部的运用组件生活在一个运用组件上下文context中,相互合作。那时将不再有各式各样的上下文环境,不再有struts2的ActionContext,不再有spring的ApplicationContext,不再有hibernate的session,不再有耐久化上下文,不再有业务上下文,不再有安全上下文,全部组件生活在一个咱们庭中,咱们其乐融融,完成全国的大平和。

10、 osgi,我以为现在最值得学习的一个技能,有了osgi,完成真实的多模块开发,改动传统的开发方法。现在,现已有了hibernate osgi,spring dynamic modul(osgi),struts 2 相同完成了对osgi的支撑。现在,eclipse是根据osgi开发的,ibm的websphere v6.1,bea的全部产品都重构在osgi上,spring的运用服务器相同根据osgi,在EclipseCon2007上,osgi成为了首要的论题。Osgi遭到如此的待遇,一点不古怪,由于他具有无比强壮的功用,改动传统的软件开发方法。Osgi选用树规划形式,将一个项目分红多个模块(bundle),每个模块独自布置,独自运转,说白了,便是将一个工程分红许多的插件,每个插件独自开发,重复运用,完成彻底的即插即用。太令人激动了。假如公司的软件开发根据osgi,将会有许多的重复运用的osgi bundles,公司将会堆集许多的无形资产,软件开发将会越来越快。而ibatis现在还没见到对osgi的支撑。

11、hibernate的社区十分昌盛,ibatis则相对安静。

总述,hibernate还有许多优异的特色,仅仅咱们不知道。Hibernate与ibatis,就像咱们闺秀对小家碧玉,咱们闺秀不只具有小家碧玉的悉数,并且知名度更高,更受敬重,更受人追捧,更有开展前途。小家碧玉虽然也很有魅力,但一直比上咱们闺秀。

Hibernate所做的不只仅是dao层的耐久化作业,而ibatis恰恰如此。

挑选hibernate,挑选orm的王者,挑选更全面的作业体会,挑选更高效的作业方法,挑选更多的赢利;挑选Gavin King,跟着***走;挑选jboss,跟随开源的潮流,不违背java的开展方向。

全部都不是托言。全部都在开展,hibernate会越来越好。

您正在阅览:运用hibernate的11大优势

【修改引荐】

  1. OpenCore: OSGi上布置Hibernate的四种方法
  2. Equinox OSGi服务器运用程序的装备过程
  3. 优化Hibernate功用的几点主张
转载请说明出处
知优网 » 运用hibernate的11大优势(hibernate的优点)

发表评论

您需要后才能发表评论