hibernate的使用总结

oohhjw

贡献于2014-06-24

字数:1819 关键词: Hibernate 持久层框架

1 ORM ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式. 2 hibernate的作用 Hibernate做什么: l 就是将对象模型(实体类)的东西存入关系模型中, l 实体中类对应关系型库中的一个表, l 实体类中的一个属性会对应关系型数据库表中的一个列 l 实体类的一个实例会对应关系型数据库表中的一条记录。 %%将对象数据保存到数据库、将数据库数据读入到对象中%% 阻抗不匹配---例JAVA类中有继承关系,但关系型数据库中不存在这个概念这就是阻抗不匹配。Hibernate可以解决这个问题 Hibernate存在的原因: 1、解决阻抗不匹配的问题; 2、目前不存在完整的面向对象的数据库(目前都是关系型数据库); Hibernate的优缺点: 1、不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效; 2、因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了; 3、使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作); 4、Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任 何类、实现任何接口,只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口) 5、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们一般称为轻量级框架 6、Hibernate代码测试方便。 Hibernate使用范围: 1、针对某一个对象,简单的将它加载、编辑、修改,且修改只是对单个对象(而不是批量的进行修改),这种情况比较适用; 2、对象之间有着很清晰的关系(例:多个用户属于一个组(多对一)、一个组有多个用户(一对多)); 3、聚集性操作:批量性添加、修改时,不适合使用Hibernate(O/映射框架都不适合使用); 4、要求使用数据库中特定的功能时不适合使用,因为Hibernate不使用SQL语句; 3 持久对象的生命周期 Transient对象:随时可能被垃圾回收器回收(在数据库中没有于之对应的记录,应为是new初始化),而执行save()方法后,就变为Persistent对象(持久性对象),没有纳入session的管理 Persistent对象:在数据库有存在的对应的记录,纳入session管理。在清理缓存(脏数据检查)的时候,会和数据库同步。只有被hibernate接管(依附于hibernate)的对象才是persistent对象,也可以说persistent对象都是被hibernate接管的。 Detached对象:也可能被垃圾回收器回收掉(数据库中存在对应的记录,只是没有任何对象引用它是指session引用),注引状态经过Persistent状态,没有纳入session的管理,所有的对象不再被session管理.session关闭之后,对象也就变为了detached状态. 综合已经学习的知识,对于三种状态的联系与区别有如下几点: A:三种状态之中,只有persistent对象是被hibernate接管的,而另外两种是不被hibernate接管的。 B:detached对象和transient对象的区别在于detached对象在后台数据库有数据行的存在,而transient对象是没有的。这两种对象,均有可能会被当做垃圾回收。 C:通过load()和get()方法所加载的对象同样是persistent对象,被hibernate对象接管。 当session提交事务之前时commit(),需要清理缓存(也称为賍数据对比),查看哪些数据需要发innert的SQL语句,而哪些需要发update语句。此处发出两条(第一条:为innert语句添加;第二条:在賍数据对比时发现数据发生改变,就发出update语句) 一个数据库对应一个SessionFactory, SessionFactory是线线程安全的。 session是非线程安全,一般是一个请求一个session.

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档