在面向对象开发方法中,对象只能存在于内存中,而内存不能永久保存数据,如果要永久保存对象的状态,需要进行对象的持久化(Persistence),对象持久化是把内存中的对象保存到数据库或可永久保存的存储设备中。在多层软件设计和开发中,为了降低系统的耦合度,一般会引入持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联,持久层的设计实现了数据处理层内部的业务逻辑和数据逻辑的解耦。
目前,关系数据库仍旧是使用最为广泛的数据库,如DB2、Oracle、SQLServer等因此将对象持久化到关系数据库中,需要进行对象/关系的映射(Object/Relation Mapping,ORM)。
随着对象持久化技术的发展,诞生了越来越多的持久化框架,目前,主流的持久化技术框架包括 Hibernate、iBatis 和 JDO等。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 O RM框架,Hibernate可以自动生成SQL 语句,自动执行,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。
iBatis提供Java对象到SQL(面向参数和结果集)的映射实现,实际的数据库操作需要通过手动编写S QL实现,与 Hibernate相比,iBatis 最大的特点就是小巧,上手较快。如果不需要太多复杂的功能,iBatis 是既可满足要求又足够灵活的最简单的解决方案。
JDO(Java Data Object,Java数据对象)是SUN公司制定的描述对象持久化语义的标准API,它是 Java对象持久化的新规范。JDO 提供了透明的对象存储,对开发人员来说,存储数据对象完全不需要额外的代码(例如,JDBCAPI 的使用)。这些烦琐的例行工作已经转移到JD0产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。
另外,JD O很灵活,因为它可以在任何数据底层上运行。JDBC 只能应用于关系型数据库,而JDO更通用,提供到任何数据底层的存储功能,包括关系型数据库、普通文件、XML文件和对象数据库等,使得应用的可移植性更强。
领取专属 10元无门槛券
私享最新 技术干货