Hibernate存在的理由有2点:
1.关系对象模型。
Hibernate可以将数据库中较为复杂的表之间的关系,通过Java对象之间的组合,聚合等关系一一映射出来。这种映射关系可以存储各个表之间的关系,如一对一,多对多,或者多对一,还有一对多,同时你可以设置这种关系是的方向性。这种关系我们可以在创建数据模型时就进行设计好。当有真实的业务数据进来的时候,我们可以依据之前设计好的关系进行相应的简化操作。比如, 当我们要删除一条数据时,其关联数据也应该被删除或修改,我们需要执行不止一次的数据库操作。而如果创建了合理的关系对象模型后,我们只需要object.save(),update(),delete(),就可以搞定了。而定位具体的数据而很简单,简单常见的方法为:依据一个.class类型和一个可序列化的id就可以了。
关系对象模型大大的简化了语言层面的操作。
2.对象缓存
Hibernate将数据库查询到的数据以对象的形式存放在内存(硬盘)中,再次访问的时候,不需要再次加载。
基于对象缓存,关系对象模型可以将其优势发挥的淋漓尽致。原本数据的关联是成本极高的操作:m*n 级别的。而若通过对象缓存来处理,这种操作的成本将变得很低。对象只需要依据真实关联的数据进行查找到相关数据,那些无谓的对象关联根本就不存在。
基于此,Hibernate的使用场景如下:对象关系复杂的非巨型数据表的业务。