技术开发 频道

浅谈Hibernate的学习经验



    【IT168 专稿】本文并没有讲述如何配置及使用Hibernate,因为已经有太多网站提供此类的资源(Hibernate的官方网站是最好的学习网站)。通过本文,希望跟读者分享笔者在学习及使用Hibernate过程中的经验、心得及一些思考,希望读者在学习与使用Hibernate时尽量少走弯路。是最好的学习网站)。通过本文,希望跟读者分享笔者在学习及使用Hibernate过程中的经验、心得及一些思考,希望读者在学习与使用Hibernate时尽量少走弯路。
 
一、    喜忧参半
 
       当项目使用Hibernate时,就笔者的经验而言,存在可喜的方面,同时也有不尽如人意的地方。不如人意的地方是Hibernate是一个很庞大的软件,而且设计难度可能远远超出初学者的想象范围。可喜的是它又可以仅仅像你所期待的难易程度一样,简单的配置就可以使用。

       总的来说,使用Hibernate越频繁,则它的优势越明显,Hibernate的设计思想也会越遍及应用程序的架构。当然,如果读者不能充分的理解Hibernate将带来什么的话,由于使用Hibernate而存在的隐患风险无疑也会增大。

       关于Hibernate,初学者须知,它并非唯一的对象持久层框架。也就是说,有很多其它的框架也可以实现如同Hibernate一样的功能,但其它的框架有可能需要在某些因素如正确性、程序性能及简洁性等方面付出较大的代价。
 
二、       理论VS实践
       众所周知,Hibernate能很高效的运行,最主要依赖于一个能将它所使用的对象全都加载进内存的运行环境,于是,使用者可以随时地提取所需的对象,这就使得使用者需要维持内存中的对象树。但事实上,这样的运行环境常常显得太过于理想化。
       这是因为,如今的许多操作系统大多是无状态和(或)分布式的操作系统。例如,绝大部分的界面用户都使用HTTP协议,而它是一种无状态的协议。当然我们可以获得HTTP的Sessions,但只有小部分且受限的信息可以安全的保存在sessions中(也许这正是Gavin King建立Seam的原因所在)。
       在无状态的操作系统中,使用Hibernate需要付出额外的努力。这是因为HTTP与面向对象之间存在错配问题,而不是Hibernate。Hibernate可以提供非常好的对象/关于映射,但这不意味着它也可以提供很好的HTTP/面向对象的映射。
0
相关文章