2006年Java开发技术回顾与展望
关键字3:Hibernate、JDO-----数据持久层框架
如果说在Web世界的表现层和业务逻辑层的竞争还略显温和的话,那么在数据持久层的竞争可谓军阀割据、血流成河。
2006年我们不得不提的一项技术就是Hibernate框架,带着对数据库操作灵活易用的优点在对象持久层框架中迅速的占领一席之地,同时Hibernate剑峰指向EJB的实体 Bean。由于EJB的持久化技术一直是EJB致命的硬伤,成为EJB挥之不去的阴影,并最终促成了Hibernate的辉煌。
在业务层方面Spring一支独大,似乎Spring并不满足目前现状,发布的2.0版本增强了对持久化层方面的设计,Spring的突然搅局,不得不让Hibernate绑紧了神经,Spring新版本发布不到一周Hibernate就匆匆推出3.2版本,来回应Spring和Ejb,Spring想在持久层方面有所建树,Ejb想用新版本抢占自已失地,但是Hibernate的老大地位依然无人憾动。
前不久我在网上看到一篇文章为Hibernate列举了五大罪证:
一、Hibernate可以设计很多解决方案,究竟哪个更适合我们无法判断?光是主键生成,就有七八种方案供你选择,你为难不为难?
二、集合属性可以用Set,也可以用List,还可以用Bag,到底哪个效率高,你为难不为难?
三、查询可以用Iterator,可以用List,哪个好,有什么区别?你为难不为难?
四、复合主键你可以直接在hbm里面配置,也可以自定义CustomerType,哪种比较好些?你为难不为难?
五、对于一个表,你可以选择单一映射一个对象,也可以映射成父子对象,还可以映射成两个1:1的对象,在什么情况下用哪种方案比较好,你为难不为难?”
Hibernate掳获太多人的心,这五大罪证,不会影响Hibernate前进的脚步,也不会阻止学习Hibernate的热情,连软件富豪微软也不得不对其敬畏三分,NHibernate杀入.NET开发领域,足以证明Hibernate的未来不容质疑,2007年还将继续走红。
JDO可以算是Hibernate时代的一个”悲情人物”,JDO和Hibernate的O/R映射类似,所不同的是,JDO使用了不同类型的查询API,也就是JDKQL,而不是Hibernate的HQL。JDO可以通过被管制的持久化对象很灵活地感知每个字段值的变化。单从JDO本身来说,这种技术是很好的,但一种技术的兴衰不仅仅取决于技术本身,而更大程度上取决于是否有更多的厂商支持这种技术。由于JDO最初是由Sun提出来的,Sun本来打算使JDO成为数据持久化的规范,但由于JDO没有得到大多数厂商的支持,因此,JDO技术虽然现在有一定的应用,但它并不是标准的Java规范,JDO在2006年没有太大动作来看,不排除将会从这个市场上出局的命运。
0
相关文章