边肖会和大家分享Hibernate3的新功能,相信大部分人都不是很了解,所以分享这篇文章给大家参考。希望你看完这篇文章会有很多收获。我们一起来看看吧!
Hibernate3新特性
Hibernate3大大提高了产品的适用性,在Java1.5的基础上进行了改进,并与EJB3.0进行了集成,大大提升了功能。同时,Hibernate还分析了另一个主流的开发平台,——微软的。NET平台,因此具有更强的生命力。
与Hibernate2相比,Hibernate3新特性的变化包括三个方面:
(1)原料药的变化。API变化中最显著的变化是包名的变化,主要是因为包的根路径发生了变化。对于这一点,程序员只需要看看Eclipse中Hibernate3.jar文件中包含的类:Hibernate 3的根路径已经从Hibernate2的. sf.hibernate变成了org.hibernate因为这两个路径完全不同,所以程序员可以在同一个应用中同时使用Hibernate2和Hibernate 3。如果你想把现有的应用升级到Hibernate3,升级的* * *步骤就是把Java源程序中的net.sf.hibernate全部替换为org.hibernate。
此外,在Hibernate3的新特性中,HibernateException及其所有子类都继承了Java.lang.RuntimeException因此,编译器在编译过程中不会再次检查HibernateException。在Hibernate3中,Session接口的createSQLQuery()方法被放弃,被移到org.hibernate.classic.Session接口。Hibernate3使用一个新的SQLQuery接口来完成同样的功能。一些新的方法也被添加到UserType和CompositeUserType接口中,这些接口已经被移动到org.hibernate.UserType包中。用户定义的usertype和CompositeUserType实现类必须实现这些新方法。Hibernate3提供了一个ParameterizedType接口,以便更好地重用用户定义的类型。
这些重大变化都会对应用产生影响,程序员必须做出相应的调整,才能让基于Hibernate3的应用正常运行。
(2)元数据元数据主要是指Hibernate映射文件中各种元素和属性的使用变化。首先,Hibernate映射文件的文档类型定义,也就是DTD文件发生了变化,程序员可以从任意一个Hibernate3映射文件的头部找到。也就是说,元素中定义的URL从http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd更改为http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd.
另一个显著的变化是lazy属性的默认值由false变为true,这也是Hibernate从优化应用性能的角度做出的决定。因为当lazy=false时,Hibernate对所有字段都采用预取策略。如果程序员想采用延迟加载,必须在映射文件中手动将lazy属性值设置为true。然而,总是采用预取策略必然会造成很大的资源占用,从而降低应用程序的性能。因此,从应用的角度来看,更希望lazy的默认值为true,以便在必要时可以采用预取的检索策略。
(3)HQL查询语句Hibernate3采用了新的基于ANTLR的HQL/SQL查询翻译器,但Hibernate2的查询翻译器依然存在。在Hibernate的配置文件中,hibernate.query.factory_class属性用于选择查询翻译器。
以上就是文章《冬眠3有什么新功能》的全部内容感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136813.html