這篇博文是hibernate系列的最後一篇,既然是最後一篇,我們就應該進行一下從頭到尾,整體上的總結,將這個系列的內容融會貫通。
hibernate是乙個物件關係對映框架,當然從分層的角度看,我們也說它是資料持久層的框架。
我們從上一句話可以看出hibernate的核心:物件導向、關係對映以及資料持久化。前面兩個概念很容易理解,而對於「資料持久化」,就是將資料或者某物體,永久的儲存起來。現實生活中的例子有很多,例如:鮮肉冷藏,水果做成罐頭,而對於程式設計而言就是將資料儲存在檔案或磁碟以及資料庫中。下面我們再看一下hibernate的核心物件:
上面這幅圖反饋給我們的資訊有很多,能否讀懂這幅圖可以從側面反映你對hibernate理解的水平。下面我們說幾條:
1、hibernate有倆個主要的配置檔案:(hibernate.cfg.xml和***.hbm.xml)
2、hibernate有五個或六個介面:configuration、sessionfactory、session、transaction、query和criteria。
3、hibernate的執行原理,看上圖的箭頭即可。
4、session物件是通過sessionfactory構建的,這是hibernate建立session的兩種方式之一。
。。。。。。
由於內容太多,我們暫時就列這麼多,就不再一一枚舉了。下面我們再詳細的介紹對映的分類。
在hibernate系列的起初,我將關係對映分為了以上四種,現在來看關係對映其實就兩種,甚至一種。
1、從物件的載入方向上分為單向和雙向兩種。
單向和雙向只影響資料的載入,並不影響資料的儲存。不論是一對一,一對多還是多對多,單向和雙向生成的資料庫表是一樣,單向和雙向的不同是由物件模型決定的。
2、從物件的對映關係上分為一對多和多對一兩種,它們又是從不同角度說的,所以也可以說是一種。
一對一關聯對映是多對一關聯對映的特例,只是在「多」的一端加上唯一的限制之後,用來表示一對一的關聯關係。
多對多關聯對映是一對多關聯對映的特例,它們呢都是使用集合來表示多的關係,用標籤定義當前表的主鍵。
當然它們既有聯絡也有區別,區別就不再一一枚舉了,系列博文中已經詳細的介紹了各自的聯絡與區別。
【ssh高階之路】hibernate基本原理(一)
【ssh高階之路】hibernate搭建開發環境+簡單例項(二)
【ssh高階之路】hibernate基本對映(三)
【ssh高階之路】hibernate對映——多對一單向關聯對映(四)
【ssh高階之路】hibernate對映——一對一單向關聯對映(五)
【ssh高階之路】hibernate對映——一對一雙向關聯對映(六)
【ssh高階之路】hibernate對映——一對多關聯對映(七)
【ssh高階之路】hibernate對映——多對多關聯對映(八)
【ssh高階之路】hibernate系列——總結篇(九)
對於hibernate的系列博文到今天為止,暫時宣布告一段落,但是並沒有結束,因為對於hibernate的內容還有很多,例如懶載入以及hibernate的效能調優,這些內容我會在後面的專案中,為大家介紹。
後面部落格,我們開始spring的系列博文,謝謝關注。
SpringBoot(九)總結篇
時至今日,springboot 系列文章也算是告一段落雖然過程比較艱辛,但結局也還算完美。在系列結尾,再對 springboot 做乙個總結,也算是塵埃落定了。springboot 最顯著的功能就是快速啟動乙個 spring 應用,為 spring 所有特性提供了更廣泛的支援 提供一系列大型專案通用...
Linux核心分析(九) 總結篇
1.linux核心分析 一 計算機工作原理 本節簡述了計算機的工作原理,馮諾依曼架構。cpu將記憶體中的 和資料讀取到自己的暫存器中,再根據一條條命令呼叫暫存器進行進一步的操作 同時,老師對基礎的組合語言語法進行了講解。通過程式的彙編級執行分析來表現計算機執行的大致過程。2.linux核心分析 二 ...
Java總結篇系列 集合(二)
arraylist和vector的區別 1.相同點 a.都是繼承自collection介面,即儲存的元素都是有序的可重複的。2.不同點 a.arraylist 是執行緒不安全的,設計的主要目的是提公升單執行緒操作時的效率,vector從設計初衷就能看出是為了多執行緒操作。類似的有hashmap和ha...