开源框架Hibernate3的新特性以及发展趋势

 我来答
清宁时光17
2022-10-02 · TA获得超过1.4万个赞
知道大有可为答主
回答量:6698
采纳率:100%
帮助的人:37万
展开全部

  Hibernate是一种强大的可提供对象 关系持久化和查询服务的中间件 它可以使程序员依据面向对象的原理开发持久化类 实现对象之间的关联 继承 多态 组合 集合等

  Hibernate提供了它特有的数据库查询语言HQL 这种查询语言屏蔽了不同数据库之间的差别 使你可以编写统一的查询语句执行查询 不同于其他持久化解决方案的是Hibernate并没有把SQL的强大功能屏蔽掉 而是仍然兼容SQL 这使你以往的关系技术依然有效

   一 Hibernate的版本更新情况

  Hibernate版本更新速度很快 目前为止有两个阶段性的版本 Hibernate 和Hibernate 这一点程序员从其Jar文件名便可以看出来 至本文写成之日最新发布的版本是Hibernate

  Hibernate 系列的最高版本是Hibernate Hibernate 系列在编写本书时的最高版本是Hibernate GA版 GA也就是General Availability 即推荐广泛使用的版本 但目前使用较多且较稳定的版本是Hibernate 或Hibernat

  另外 自Hibernate 发布以来 其产品线愈加成熟 相继出现了Hibernate注释 Hibernate实体管理器 Hibernate插件工具等一系列产品套件 在方便程序员使用Hibernate进行应用程序的开发的同时 也逐渐增强了Hibernate产品线的实力

  但目前市面上用于学习Hibernate开发的图书并不多见 大多是介绍老版的Hibernate 最近希赛和博文联手推出的《贯通Hibernate开发》 对最新的Hibernate 作了详尽的解答 推荐读者阅读

   二 Hibernate 的新特性

  Hibernate 在产品的应用性上有了极大提高 并且基于Java 进行了改进 且与EJB 进行了集成 在功能上有了很大的提升 同时 Hibernate还对当今另一主流开发平台——微软的 NET平台进行了支持 因此具有更加强大的生命力

  相对于Hibernate Hibernate 版本的变化包括三个方面 ( )API的变化API的变化中比较重大的变化是包名的变化 主要是包的根路径发生了改变 这一点程序员只需要在Eclipse中查看Hibernate jar这个文件中所包含的类就知道了 Hibernate 的根路径从Hibernate 的net sf hibernate变成了 hibernate 由于这两个路径完全不同 所以程序员能够在同一个应用程序中同时使用Hibernate 和Hibernate 如果希望把已有的应用升级到Hibernate 那么升级的第一步是把Java源程序中的所有net sf hibernate替换为 hibernate 另外 在Hibernate 中 HibernateException异常以及它的所有子类都继承了Java lang RuntimeException 因此在编译时 编译器不会再检查HibernateException 在Hibernate 中 Session接口的createSQLQuery()方法被废弃 被移到 hibernate classic Session接口中 Hibernate 采用新的SQLQuery接口来完成相同的功能 在UserType和CompositeUserType接口中也都加入了一些新的方法 这两个接口被移到 hibernate usertype包中 用户定义的UserType和CompositeUserType实现类必须实现这些新方法 Hibernate 提供了ParameterizedType接口 用于更好的重用用户自定义的类型

  以上的这些主要变化将会影响到应用程序 程序员必须要进行相应的调整 才能使基于Hibernate 的应用程序正常运行

  ( )元数据元数据主要是指Hibernate映射文件中各种元素和属性的用法的变化 首当其冲的是Hibernate映射文件的文档类型定义 即DTD文件发生了变化 这一点程序员可以从任何一个Hibernate 的映射文件的文件头中发现 即在元素中定义的URL从 mapping dtd变成了 mapping dtd

  还有一个重大的改变就是lazy属性的默认值从false变成了true 这也是Hibernate从优化应用程序性能的角度出发所做出的决定 因为当lazy=false时 Hibernate对所有字段都采取预先抓取的策略 如果程序员希望采用延迟加载 必须手工在映射文件中将lazy属性的值设为true 然而总是采用预先抓取策略势必会造成极大的资源占用 从而降低应用程序的性能 所以从应用程序的角度来讲 更希望lazy的默认值是true 这样在有需要的时候才去采用预先抓取的检索策略

  ( )HQL查询语句Hibernate 采用新的基于ANTLR的HQL/SQL查询翻译器 不过 Hibernate 的查询翻译器也依然存在 在Hibernate的配置文件中 hibernate query factory_class属性用来选择查询翻译器

   三 Hibernate的发展趋势

  Hibernate是一个非常优秀的持久层解决方案 具有以下发展趋势 ( )与其他开发框架的集成将越来越成熟 如与struts spring jbpm的集成 充分发挥Hibernate自身的优势 也吸取了对方框架的优势 在软件系统的各个层各司其职

  ( )产品线的逐渐完善 通过增加若干的工具套件 并支持 net平台 使Hibernate具有更强大的生命力

  ( )与EJB更好的集成 集成EJB 开始将重点转向重量级应用 使得Hibernate在企业级应用中必将占据一席之地

  Hibernate的轻量级 ORM 模型逐步确立了在Java ORM架构中领导地位 甚至取代复杂而又繁琐的EJB模型而成为事实上的Java ORM工业标准 而且其中的许多设计均被J EE 标准组织吸纳而成为最新EJB 规范的标准

lishixinzhi/Article/program/Java/ky/201311/28316

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式