【转】hibernate 如何实现持久化的?

hibernate是一种ORM(object relation mapping,对象关系映射)框架,所谓的对象关系映射,通俗的说,就是把JAVA对象保存到关系型数据库中。 hibernate要做的事,就是让对象投影到关系数据库中,然后实施持久化。其具体实现: 建立对象到关系数据库的映射。 example:建立User类到数据库的映射 一个简单的类User: public class User{ private int id; private String name; } User类对应的数据库表USER: column-name type rule id number P name varchar2 R 当进行持久化时,需要把对象的两个属性的值保存到数据库存的USER中,如果使用JDBC的话,我们需要自己写SQL,并获取对象两个属性的值作为参数来进行持久话。SQL可能如下: insert into USER(name) value(?); 当使用hibernate时,首无要作好对象到表的映射关系,使用配置文件来实现: User.hbm.xml: ... <class name="user" table="USER"><!--该类对象保存到USER表--> <id name="id" column="id"> <generator class="native"/><!--这里有很多策略来生成ID,这里选择本地自动生成,--> </id> <property name="name" column="name"> </class> ... 然后在通过hibernate.cfg.xml中配置到数据库的联接,并读取User.hbm.xml文件,就建立了映射关系了。 当需要持久化对象时,需要使用到hibernate的session对象: session.save(new User()); 看到了吗?我们只需要操作对象就行了,也就是说,编程的人不需要看到数据库了,他只需要直接操作对象就行了。 hibernate 如何实现持久化? 答: 1.hibernate是一种ORM(object relation mapping,对象关系映射)框架,所谓的对象关系映射,通俗的说,就是把JAVA对象保存到关系型数据库中,即进行持久化的框架。 2.hibernate进行持久化首先要建立对象到关系数据库的映射。 3.hibernate根据定义的映射规则将对象持久化(保存到)数据库存中。这就实现了对象持久化。

原理:
    1.读取并解析配置文件
    2.读取并解析映射信息,创建SessionFactory
    3.打开Sesssion
    4.创建事务Transation
    5.持久化操作
    6.提交事务
    7.关闭Session
    8.关闭SesstionFactory
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

1.Hibernate和JDBC的主要区别就是:Hibernate先检索缓存中的映射对象(即Hibernate操作的是对象),而JDBC是直接操作数据库。.

2.Hibernate是对JDBC的轻量级的对象封装,它是一个独立的对象持久层的框架,和APP Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合。

3.Hibernate是和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。

4.正确的使用JDBC技术,它的效率一定比hibernate要好,因为hibernate是基于jdbc的技术。

猜你喜欢

转载自javaksing.iteye.com/blog/1100336