ORM思想解析

2021-09-08 11:51:36 字數 975 閱讀 7284

orm

廣義上,orm指的是物件導向的物件模型和關係型資料庫的資料結構之間的相互轉換。 狹義上,orm可以被認為是,基於關係型資料庫的資料儲存,實現乙個虛擬的物件導向的資料訪問介面。

o,r,m的定義

o(物件模型):

實體物件,即我們在程式中根據資料庫表結構建立的乙個個實體entity。

r(關係型資料庫的資料結構):

即我們建立的資料庫表。

m(對映):

從r(資料庫)到o(物件模型)的對映,可通過xml檔案對映。

如圖:當表實體傳送變化時,orm會幫助我們把實體的變化對映到資料庫表。

為什麼使用orm

提高開發效率:

orm框架自動實現entity實體的屬性與關係型資料庫欄位的對映。crud的工作則可以交給orm來自動生成**方式實現。隱藏了資料訪問細節,「封閉」的通用資料庫互動,他使得我們的通用資料庫互動變得簡單易行,並且完全不用考慮sql語句。大大提高我們開發效率, 這樣一來也減少我們維護乙個複雜 缺乏靈活性資料訪問層的成本。

orm作為是一種思想

幫助我們開發人員跟蹤實體的變化,並將實體的變化翻譯成sql指令碼,執行到資料庫中去,也就是將實體的變化對映到了表的變化。這樣會給我們帶來非常大的便利。但有得必有失,便利的同時也無可避免的帶來了一些其他的問題:比如效能降低,複雜的查詢orm仍然力不從心等。

不得不說,任何優勢的背後都隱藏著缺點,這是不可避免的。問題在於,我們是否能容忍這些缺點。這需要結合專案的具體情況考慮使用這項技術是否利大於弊 。

這篇部落格只是介紹了orm這種思想,具體實現這種思想的框架已有很多,herberate,ibatis,nherberate,,ef等,這些框架都大同小異。

Django框架之ORM解析和實際應用

orm分為兩種 1 db first 先建立資料庫表結構,根據表結構生成類,根據類運算元據庫 2 code first 是先寫 後建立資料庫,根據類建立資料庫表.主流的orm都是code first。django 的orm也是code first django連線資料庫mysql 使用mysql資料...

ORM核心原理解析之 延遲載入

延遲載入 lazy load 也成為懶載入,基本用於orm中資料物件的一種預設載入方式,簡單點講延遲載入機制是為了避免無所謂的效能開銷而提出來的,所謂延遲載入就是當真正需要資料的時候,才真正的執行資料載入操作。可以簡單的理解為,只有使用的時候,才會例項化物件。最大的有點就是能夠大大的提高系統的效能。...

javamail 解析 顯示正文詳細思想

個人註解,不很全面 當我們需要做乙個收取郵件的程式時,我們該如何去顯示復合郵件的內容呢?原問題見 專家門診 今天我將我得一點心得寫出來,希望後來者能夠少走彎路。當然也希望同志多加指正。首先,我們需要從folder中得到乙個message物件。這一步不難實現。可以參看很多例子。當我們得到這個messa...