Hibernate学习手札(一)

时间:2021-06-26 04:09:33

       从今天起开始我的Hibernate之旅
       我们知道Hibernate中有一个重要的概念----对象持久化。那么什么是对象持久化呢?简单地说,持久化就是把数据同步保存到数据库或某些存储设备中。实际上,使用JDBC对数据库中的进行增、删、改的操作就是持久化的过程。那么为什么不直接使用JDBC呢?这个问题问得好,原因有以下几点:

    1.频繁的插入等操作浪费了大量的人力物力。

    2.多表连接问题。如多表查询时,我们往往会涉及到很多张表,SQL语句中会出现多个字段。但想过没有,当我们删除了其中一张表时,我们则需把涉及到该表的所有信息都删除,这会关联到很多代码,因此操作起来很不方便。

    3.表间级联问题。我们建表时往往会用到外键,如果关联得多了,当要删除某条记录时,很多表也要随之更新。这使得我们不得不花费很多精力在这种重复操作上,导致疲于精力去专注于业务逻辑上。

    4.层与层之间的耦合严重。关于这一点,我也只是懵懵懂懂,还不能用语言完全表达出来。

    5.性能问题。普通的JDBC对于批量的增、删、改操作要发送多次SQL执行语句,而Hibernate只需一次。它会把SQL语句缓冲在Session的缓冲区中,最后在flush时一次性的向数据库发送。

     总之,传统的JDBC的最主要的两大缺点是:一、无法使程序员专注于业务逻辑;二、不便于以后的维护。

     另一个概念----ORM:即Object-Relation Mapping,它的作用是在关系型数据库和对象之间作一个自动的映射,这样在具体操作数据库时,就不需要再与复杂的SQL语句打交道,只要像操作对象即可,O/R Mapping工具会自动地将对象的操作转换为SQL语句操作。

     然后来谈谈持久层的意义:

     1.代码重用性高,能够完成所有的数据访问操作。

     2.具有相对的独立性,底层数据库改变,只需修改持久层代码,只要对上提供的API不变,则上层的业务逻辑层可以不用修改。

     好了,今天主要了解下为什么我们要使用Hibernate框架的必要性,有了这个思想认识,才能对它有更好的理解。