数据访问层设计_3.ORM、Hibernate的设计思想

发布于:2024-05-22 ⋅ 阅读:(139) ⋅ 点赞:(0)

1.对象关系映射ORM(Object-Relation Mapping) 

        ORM(Object-Relation Mapping)在关系型数据库和对象之间作一个映射,这样,在具体操纵数据库时,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作即可。

        当开发一个应用程序的时候(不使用OR Mapping),可能会涉及许多数据访问层的代码,用来从数据库保存、删除和读取对象信息等,然而这些代码写起来总是重复的。

        一个更好的办法就是引入OR Mapping。实质上,一个OR Mapping会生成DAL。与其自己写DAL代码,不如用OR Mapping,开发者只需要关心对象就好。

        使用ORM可以大大降低学习和开发成本。而在实际的开发中,真正对客户有价值的是其独特的业务功能,而不应该把大量时间花费在编写数据访问、CRUD方法、后期的Bug查找和维护上。在使用ORM之后,ORM框架已经把数据库转变成了我们熟悉的对象,我们只需要了解面向对象开发就可以实现数据库应用程序的开发,不需要浪费时间在SQL上。同时也可减少代码量,减少数据层出错机会。

        通过Cache的实现,能够对性能进行调优,实现了ORM区隔离实际数据存储和业务层之间的关系,能够对每一层进行单独跟踪,增加了性能优化的可能。

2.对象关系映射框架Hibernate 

        Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,还提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,Hibernate可以大大减少利用Hibernate QL从数据库提取数据的代码的编写量。Hibernate可以和多种Web服务器或者应用服务器良好集成,如今已经支持几乎所有流行的数据库服务器。

        Hibernate技术本质上是一个提供数据库服务的中间件,它的架构如图1所示。

图1 Hibernate架构图 

        图1显示了Hibernate件(如hibernate.properties)的工作原理,它是利用数据库以及其他一些配置XML Mapping等来为应用程序提供数据持久化服务的。

        Hibernate具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hibernate的一个最小子集。在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTA API都被抽象了,Hibernate会照管所有的细节。

        Hibernate是一个功能强大,可以有效地进行数据库数据到业务对象的O/R映射方案。Hibernate推动了基于普通Java对象模型,用于映射底层数据结构的持久对象的开发。通过将持久层的生成自动扩展到一个更大的范围,Hibernate使开发人员专心业务逻辑而不用分心于烦琐的数据库方面的逻辑,同时提供了更加合理的模块划分的方法。