ORM利器:NHibernate(一)簡介,ormnhibernate

來源:互聯網
上載者:User

ORM利器:NHibernate(一)簡介,ormnhibernate

簡介:

    ORM(Object Relational Mapping)對象關係映射,是一種為瞭解決物件導向與關聯式資料庫存在的互不匹配的現象的技術 。


為什麼出現ORM?

    物件導向的特徵:我們通常使用的開發語言Java,.Net都是物件導向的。面向封裝了對象,對象內部有屬性和方法。

    關係型資料庫的特點:以表的形式組織我們的資料。以列的形式表述了表的特徵。表中的一條記錄=一個對象,表中的列代表了對象中的屬性。表之間是建立了一定的聯絡。

    如何表中的一條記錄提取出來封裝成一個對象?以前的做法是:通過對應的sql語句查詢出記錄,後把記錄中的每一條資料取出來分別,去執行個體化一個對象,並送給對象的每一個屬性,從而達到封裝對象的目的。這樣就實現了把一條資料轉化為一個對象。

    把對象經過CRUD放在資料庫中?需要對資料庫進行DML語句,拼字各種sql語句,把一種形態轉換為另一種形態,需要使用者手動代碼實現。若項目表結構很多,則反覆進行對象和庫的轉換會容易出錯。而程式員更適合做對象的封裝,而不是對庫頻繁的開關和對資料庫的DML,那麼有沒有什麼更好的方式呢?那就是ORM的出現。ORM是資料庫與對象之間的橋樑,描述兩種不同形式之間的轉化關係。

 

工作原理:

        ORM是通過使用描述對象和資料庫之間映射的中繼資料,將程式中的對象自動持久化到關聯式資料庫中。

    ORM自動完成以下操作:1)把對象經過CRUD放在表中,最後表現在庫中。2)把資料庫經過DML語句轉化封裝為一個對象,最後返回過來。 

    .Net的三層架構中,最上面的展示層(U層),中間的業務層(B層),下面的資料訪問層(D層)。在以前的項目中D層通常用?DAO、DAL表示,負責所有與資料庫打交道的地方,簡單CRUD,通過手工封裝DBHelper來實現。而資料庫品種很多,如果產品如要做的很完善,就需要支援不同種類的資料庫驅動,並編寫不同的D層。可以通過定義介面來實現,不同的資料來源實現該介面。但是這樣D層代碼會非常龐大。更過的庫的種類很多的話,就會有龐大的D層代碼。那麼該如何節省這樣的操作?ORM目標是持久化,充當和資料庫打交道的一層。並針對不同品種的資料庫,會自動轉化為對應語句。

  

NHibernate代碼很複雜,這裡我們只是提供基本使用。

五部曲


總結

    NHibernate是實現了ORM的架構,由Java開源項目Hibernate發展來的。它為物件導向開發提供了持久的類(就是我們通常說的D層),解決了對象和資料庫之間相互轉化的問題。並提供API,實現了對象與不同種類的資料庫相互轉化的問題,並具有通用性。

    

     對於NHibernate的研究本文只做了簡要介紹,系列部落格將持續更新,敬請期待O(∩_∩)O~



nhibernate這一ORM架構怎?性可以怎?

不是所有的應用都十分適用,從這點說效能更取決於硬體
 
NHibernate 應用廣泛

NHibernate是一個面向.NET環境的對象/關聯式資料庫映射工具。對象/關聯式資料庫映射(object/relational
mapping,ORM)這個術語表示一種技術,用來把物件模型表示的對象映射到基於SQL的關聯式模式資料結構中去。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.