小女巫 发表于 2015-1-18 11:34:36

JAVA网页设计利用hibernate的11年夜上风仓酷云

比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。进修了一段工夫的ibatis,我以为hibernate有着ibatis没法替换的上风。
1、开辟者都晓得,hibernate让我们以oo的体例操纵数据库,这让我们看到了hibernate的壮大的地方,体验到操纵数据的便利。但GavinKing说,hibernate最刺眼的地方是hibernate的缓存机制,而不是以oo的体例操纵数据库。Hibernate的缓存机制不过乎是一级缓存session,二级缓存sessionFactory,和第三方缓存如ehcache。也就是hibernate的最壮大的中央是它的缓存,了解了这个才干真实的了解hibernate。缓存其实太难了,我至今未能真正了解。
2、可保护性:ibatis宣传写sql语句,它将sql语句放进一个独自的xml文件,这类体例博得了良多开辟者的喜好,一句话,便利保护。但hibernate一样具有这类功效,并且比ibatis加倍壮大。Hibernate的定名查询/定名参数查询,就是将hql语句放在一个独自的xml文件当中,它仍旧让人们以面向对象的体例往利用数据,这失掉大批遵守oo体例开辟者的喜好,而不必在以oo的体例写着代码的同时,然后再变化头脑,用面向干系的体例往写那些sql语句。但hibernate不但做了这些,它的nativesql查询体例,完整满意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,好比在onetomany的父子干系中,删除父亲one,需级联删除子many,这时候的one这端可设置cascade=“delete”,如许在删除one时,会主动删除子,但对子的操纵不会影响父。Cascade另有其他的属性值,只需设置准确,可提拔功能。
d、lazy战略,准确设置提早加载战略一样会提拔功能,在onetomany或manytomany中,一般总应当提早加载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部署形貌符成为可选的。Hibernateannotation对年夜字段的处置只是一个@Lob就弄定了。
hibernatesearch对Lucene举行了轻量级的封装,全文检索变得十分复杂。
Hibernatevalidator被以为是最公道的考证体例,将考证战略间接附在贯串各层的范畴模子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、GavinKing,我最崇敬的偶像,他不但创造了壮大的hibernate,还弄出了一样壮大且文雅的web2.0使用程序框架seam。他是ejb3.0专家构成员之一,是jpa标准哀求的向导者,他java范畴最有讲话权、最威望的首脑人物之一。如今,他向导webbean的,jsr299的开展,webbean标准的制订,环球软件巨子如ibm、oracle、bea和apache没有一个否决,纷繁呼应。Webbean,设想起来,其实太优美了,完整的松耦合和强范例,一切的使用组件生存在一个使用组件高低文context中,互相互助。当时将不再有林林总总的高低文情况,不再有struts2的ActionContext,不再有spring的ApplicationContext,不再有hibernate的session,不再有耐久化高低文,不再有事件高低文,不再有平安高低文,一切组件生存在一个小家庭中,人人其乐陶陶,完成世界的年夜战争。
10、osgi,我以为如今最值得进修的一个手艺,有了osgi,完成真实的多模块开辟,改动传统的开辟体例。如今,已有了hibernateosgi,springdynamicmodul(osgi),struts2一样完成了对osgi的撑持。今朝,eclipse是基于osgi开辟的,ibm的webspherev6.1,bea的一切产物都重构在osgi上,spring的使用服务器一样基于osgi,在EclipseCon2007上,osgi成了次要的话题。Osgi遭到云云的报酬,一点不奇异,由于他具有没有比壮大的功效,改动传统的软件开辟体例。Osgi接纳树计划形式,将一个项目分红多个模块(bundle),每一个模块独自部署,独自运转,说白了,就是将一个工程分红很多的插件,每一个插件独自开辟,反复利用,完成完整的即插即用。太使人冲动了。假如公司的软件开辟基于osgi,将会有大批的反复利用的osgibundles,公司将会堆集大批的有形资产,软件开辟将会愈来愈快。而ibatis如今还没见到对osgi的撑持。
11、hibernate的社区十分昌盛,ibatis则绝对僻静。
综述,hibernate另有良多优异的特性,只是我们不晓得。Hibernate与ibatis,就像人人闺秀对小家碧玉,人人闺秀不但具有小家碧玉的全体,并且出名度更高,更受尊崇,更受人追捧,更有开展出路。小家碧玉只管也很有魅力,但一直比上人人闺秀。
Hibernate所做的不单单是dao层的耐久化事情,而ibatis恰好云云。
选择hibernate,选择orm的王者,选择更周全的事情体验,选择更高效的事情体例,选择更多的利润;选择GavinKing,随着首脑走;选择jboss,跟随开源的潮水,不偏离java的开展偏向。
统统都不是托言。统统都在开展,hibernate会愈来愈好。
来自:利用hibernate的11年夜上风

先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。

乐观 发表于 2015-1-21 10:28:11

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

飘飘悠悠 发表于 2015-1-30 15:05:00

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

再见西城 发表于 2015-1-30 15:12:09

是一种为 Internet发展的计算机语言

灵魂腐蚀 发表于 2015-2-6 13:44:20

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

柔情似水 发表于 2015-2-10 23:46:16

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

若相依 发表于 2015-2-14 09:47:56

是一种为 Internet发展的计算机语言

活着的死人 发表于 2015-2-14 20:58:27

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

兰色精灵 发表于 2015-3-4 10:25:44

是一种语言,用以产生「小应用程序(Applet(s))

变相怪杰 发表于 2015-3-11 18:14:50

Java 编程语言的风格十分接近C、C++语言。

小魔女 发表于 2015-3-19 06:29:37

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

飘灵儿 发表于 2015-3-19 08:48:09

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

愤怒的大鸟 发表于 2015-3-23 19:00:55

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

海妖 发表于 2015-3-27 09:09:43

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

只想知道 发表于 2015-4-27 05:48:32

是一种突破用户端机器环境和CPU

金色的骷髅 发表于 2015-5-9 14:13:06

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

深爱那片海 发表于 2015-6-12 05:00:22

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

小女巫 发表于 2015-6-20 20:14:02

是一种使网页(Web Page)产生生动活泼画面的语言

再现理想 发表于 2015-6-25 14:48:41

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
页: [1]
查看完整版本: JAVA网页设计利用hibernate的11年夜上风仓酷云