哪位大侠能帮我说说hibernate框架如何运作的

解决方案 »

  1.   

    100分就拿来问这个啊.....
    简单来说,它根据你的pojo映射文件,和数据库方言,二者综合起来,把你对于表的增删改查sql语句直接生成好,提供给你一套api,你用这套api就可以完成增删改查。
    它还有一个用于复杂业务需求的hql语言,面向被映射的pojo来写“类sql”语句,它解析成sql语句帮你执行。
    简单说的话就这么多吧。
      

  2.   

    不用最好,用起来感觉没什么优势,弄不好还一大堆问题,直接jdbc得了。
      

  3.   

    买本书看一下,这里几句话是说不清楚的,总之不管什么框架最终都是转为了基本的sql操作!
      

  4.   

    其实用Hibernate真感觉不到有好大的优势,还要去熟悉他的HQL,可能是给项目太小有关系。还是喜欢用jdbc,直接用sql一目了然。
      

  5.   

    根据使用hibernate的步骤,和常用的几个类和接口,去研究源码。
    仔细研究一下源码,源码网上到处都有,原理就很明白了,
      

  6.   


    hibernate就是要对jdbc进行简单的封装,以便于减少数据库语句的,因为对于项目而言,SQL文对于程序员是不透明的,在程序中加载大量的SQL文事不好的习惯,一般都会放到一个XML文件里,或者属性文件里,当时当SQL文有几十上百条时,又有的sql文长达百行,你还能看的懂吗?一个月之后呢,你能从sql中看出业务来吗?
    所以使用这种映射框架就是为了让数据库的操作能对我们透明。
      

  7.   

    楼了说的有道理,我来补充一点:对于一般的应用系统而言,其实就是对数据进行增删改查的操作。特别是JAVA这样的面向对象的语言。但是现在主流数据库都是面向关系的。将对象保存到关系数据库中,我们使用JDBC时,需要作复杂的“拼SQL”,这对很多对数据库不是非常了解的程序员来说,相当困难。应用程序Dao<---->hibernate(其将JDBC封装起来)<--------->DB上面的图表示系统在持久层的调用关系。hibernate首先需要一个基本配置文件(默认文件名: hibernate.cfg.xml),保存基本的初始化信息。需要每一个映射到关系数据库的实体类作一个配置,使用实体类的每一个属性对象数据二维表中的一个字段。hibernate对jdbc进行封装,他定义了一个总的数据访问接口,不同的数据库有不同的实现,以使其具有跨主流数据库的特性。当需要访问数据库时,其使用了dialect方言的定义来争对不同数据库生成不同SQL。通过使用缓存等方式来使得数据访问更有效。其实,hibernate本身也是复杂的。