初步了解数据持久化和Hibernate的概念与技术

本文介绍了数据持久化的概念及重要性,详细解释了对象关系映射(ORM)原理,并对比了POJO与PO的区别。此外,还探讨了Hibernate的工作机制及其与JDBC、EJB和JDO的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    由于时间的关系,我今天只能初步的跟大家讨论一下学习数据持久化和Hibernate的概念与技术的一些所需要知道的知识,在后续的文章中我还会给出如何使用Eclipse来建立和使用Hibernate技术来操作数据库。

1.数据持久化的概述

Persistent是为了解决关系型数据库和对象型编程语言之间的冲突,持久化可以将记录转换为对象。在对象数据库出现并流行之前,持久化是解决并避免对象型编程操作数据的非对象操作的最好途径。数据的持久化就是指将从数据库取出的数据进行封装,放在一个对象里,目的是为了以后的使用更加的高效,不必每次都从数据库里取数据,这对减轻数据库服务器的负载很有作用。

2.ORM的基本概念

O/R Mapping(对象关系映射)实现了Java应用中对象到关系数据库中表的自动的和透明的持久化,使用meta data描述对象与数据库间的映射,优点就是可以增加程序的可维护性,提供更好的性能。

3.POJO与PO的概念和比较

Pure Old Java Object用来与数据库表建立映射的JAVA文件,Persisent Object是在操作数据库的时候,创建的对象。POJO是由new创建,由JAVA的GC收回。但是PO是由数据库创建,由数据库删除。PO往往指能存在一个数据库的CONNECTION中,CONNECTION关闭之后,PO就不存在了,而POJO只要不被GC,总是存在的。PO相对于POJO会增加一些管理数据库entity状态的属性和方法。

4.JDO的实现机制

JDO的实现方法有点类似于JSP,具体过程如下:编写POJO,编译POJO;使用ENHANCER或在ANT里面运行,对POJO的CLASS文件处理,把POJO替换为PO,所以在运行期间运行的实际是PO。

5.Hibernate的实现机制

Hibernate的实现方法很先进:编写POJO ,编译POJO,直接运行,由Hibernate的CGLIB动态把POJO转换为PO。应用程序通过Hibernate对数据库进行访问,对数据持久层操作,而Hibernate自身通过properties和XML Mapping文件将类映射到数据库的记录,从而Application可以通过模型中骑着应用与数据库直接的桥梁作用的PO,这个过程并不是必须使用JDBC和数据库精心数据的操作。

6.Hibernate与JDBC、EJB、JDO的一些比较

(1)JDBC 它可以通过DAO模式进行改善和提高,但在大型应用程序中不容易操作和使用,并且维护困难。

(2)EJB  它通常是在数据持久技术上的第二个选择,是通过entitybeans来对数据进行持久化。在EJB中实现JDBC比较复杂。

(3)JDO  它没有一个好的开源免费实现,也不是一个轻量级封装,JDO的标准还很不完善并且产品分裂问题也严重。

(4)Hibernate 它不需要任何的容器,提供了简单易用的API,也解决了JDO的很多缺陷,是一个良好的ORM。

7.Hibernate的特点

(1)透明地提供对象与关系数据库的映射,以统一的接口方式来支持多种数据库

(2)缓存机制,针对数据库的操作大大减少

(3)开源免费的Licence

(4)轻量级的封装

(5)可自行代码扩展

(6)产品有文档的发展保障

     以上就是我参考一些书籍和自学的一些总结,拿出来跟大家交流,希望大家给出批评,我会在后续的文章中给出Eclipse来建立和使用Hibernate技术来操作数据库的例子。

 

转载于:https://www.cnblogs.com/tjs_ambitious/archive/2008/12/25/1362536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值