ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 流水账解读hibernate

流水账解读hibernate

原创 Linux操作系统 作者:icer_repls 时间:2011-06-11 09:49:41 0 删除 编辑
        hibernate的定位:
        hibernate是我们常说的SSH架构中的H,但它不同于其他两个框架的一个特点是它没有依赖与web开发环境,即使没有web服务器,我们依然可以使用hibernate。它的作用主要是简化了持久化操作(持久化操作简单理解:将数据库永久的存到磁盘上,这里一般只存在数据库里面)。相信只要稍微熟悉web开发,熟悉数据库开发的都知道,我们在写SQL语句的时候很复杂,如果你说很容易,那是因为你只用到了简单的增删改查语句,基本上没有嵌套、没有表联合等等。我也是初学者,习惯了写SQL语句,刚开始接触HQL时也觉得有些别扭,事实上hibernate为了达到持久化操作的简便性(有些人说是面向对象的特性,我个人觉得没有必要把现在所有的编程都要与面向对象挂钩,面向过程编程不会消亡,因为所有的其他方式的编程必然要基于过程)损失了一定了效率相对jdbc来说。关于java的效率问题,很多人都有自己的看法,这里不扯。总结起来hibernate的最重要的一个作用就是:将持久化操作封装起来,用hibernate风格的方式来进行,达到简化、方便的目的。
        hibernate的原理:
        hibernate的原理O/RM(object/relation mapping)对象关系映射,将我们数据库中的表,数据库中的关系与对象映射起来,这是核心原理。如果不是研究hibernate底层代码,没必要去追究这些细节,我们只需只要,当我们用注解或是XML方式可以将实体对象映射到数据库的表。然后再好好写我们的业务逻辑就可以了。当hibernate将实体对象映射到数据库表之后,我们操纵实体对象就相当于操作数据库对象,这样是不是更符合我们人的常规思维呢?哈哈hibernate的优势就在这里。
        hibernate环境的搭建:
        最核心的包就是hibernatexx.jar 加上required文件夹里面的包。还有注解用的需要的一些包,如果你搭建一次成功后就自己做个记录吧,我现在就记不住。
        hibernate的核心内容:
        这个在这里就不详细论述了,别人一本hibernate in action那么厚,我一个菜鸟能说些什么出来呢?不能。就稍微谈谈里面的一个小的方面。(1)为什么需要在实体对象之间设置关系呢?首先实体类就是相当于数据库中的一个表,我们将实体类的属性映射为数据库中的字段,并标识出PK,FK等等。设置关系是为了,当我们查找出一方对象之后能够根据这个关系来找到与之相关联的另一方对象,我们可以想象一下,平常直接写SQL语句时都是自己利用join来完成,相当的复杂,这里就是hibernate帮我们封装好了的。当我们设置了双方的关系之后,就能根据查询出来的一方理所当然的查处另一方,是不是很强大啊?!常见的关系就是数据库中那几种一对一、一对多、多对多。具体的注解方式或是XML方式可以查官方文档。因为映射是基础,有了映射时候我们才可以写QL(hibernate中的映射关系确立的重要性就相当于一个项目中数据库表的设计,甚至现在很多的项目组都是利用hibernate生成数据库表,即先将实体类设计好,并设置好之间的关系)。hibernate的小的知识点很多很多,这些都靠我们自己去实践。
        hibernate总结:
        hibernate没别的什么,一个最大的特点就是,我们不需要直接与数据库打交道了,可以通过hibernate这个中间层,写我们的持久化操作代码。当然这些代码必然是更加符合我们人类的习惯,更简便。然后hibernate通过它的内部实现,将这个代码转换为操作实际数据库的SQL语句。就这样!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25701553/viewspace-697649/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 流水账解读struts2
请登录后发表评论 登录
全部评论

注册时间:2011-04-16

  • 博文量
    20
  • 访问量
    65368