Hibernate是一个对象关系映射框架,固然从分层的角度看,咱们也说它是数据持久层的框架。数据库
咱们从上一句话能够看出Hibernate的核心:面向对象、关系映射以及数据持久化。前面两个概念很容易理解,而对于“数据持久化”,就是将数据或者某物体,永久的保存起来。现实生活中的例子有不少,例如:鲜肉冷藏,水果作成罐头,而对于编程而言就是将数据保存在文件或磁盘以及数据库中。下面咱们再看一下Hibernate的核心对象:编程
上面这幅图反馈给咱们的信息有不少,可否读懂这幅图能够从侧面反映你对Hibernate理解的水平。下面咱们说几条:框架
一、Hibernate有俩个主要的配置文件:(Hibernate.cfg.xml和xxx.hbm.xml)性能
二、Hibernate有五个或六个接口:Configuration、SessionFactory、Session、Transaction、Query和Criteria。spa
三、Hibernate的执行原理,看上图的箭头便可。xml
四、Session对象是经过SessionFactory构建的,这是Hibernate建立Session的两种方式之一。对象
。。。。。。接口
因为内容太多,咱们暂时就列这么多,就再也不一一列举了。下面咱们再详细的介绍映射的分类。it
在Hibernate系列的起初,我将关系映射分为了以上四种,如今来看关系映射其实就两种,甚至一种。io
一、从对象的加载方向上分为单向和双向两种。
单向和双向只影响数据的加载,并不影响数据的存储。不管是一对一,一对多仍是多对多,单向和双向生成的数据库表是同样,单向和双向的不一样是由对象模型决定的。
二、从对象的映射关系上分为一对多和多对一两种,它们又是从不一样角度说的,因此也能够说是一种。
一对一关联映射是多对一关联映射的特例,只是在“多”的一端加上惟一的限制以后,用来表示一对一的关联关系。
多对多关联映射是一对多关联映射的特例,它们呢都是使用集合来表示多的关系,用<key>标签订义当前表的主键。
固然它们既有联系也有区别,区别就再也不一一列举了,系列博文中已经详细的介绍了各自的联系与区别。
对于Hibernate的系列博文到今天为止,暂时宣布告一段落,可是并无结束,由于对于Hibernate的内容还有不少,例如懒加载以及Hibernate的性能调优,这些内容我会在后面的项目中,为你们介绍。