Nhibernate 在專案中的位置

2022-03-04 02:08:51 字數 1493 閱讀 4541

nhibernate 是乙個物件持久化框架,所謂持久化就是把資料儲存在檔案或關聯式資料庫中.

哪麼nhibernate 處於在持久化過程中的中間層,他負責把成功對映的物件轉換成相應的sql語句.

再對資料庫作增刪改查操作,其中hql是他內部的查詢規則語句,哪麼它到底有什麼優勢,為什麼要用hql呢?

優點:1.對於乙個大型的專案,開發人員是否對於資料層有所恐懼,為什麼我們一直在寫著簡單,

但又不得不寫的語句,比如 select * from a where id=@id

,

哪麼如果我們專案層次又很多.資料層寫乙個方法,工廠又要加上乙個例項資料層的方法,

然後業務層又寫乙個對應的方法,這樣開發下去.整潔統一乾淨的結構帶來了巨大的工作量成本,

讓開發人員重複著大量的相似**.有了nhibernate 這些sql語句,和方法都大大減少,

當專案的資料庫表數量不斷增大,哪麼這種優勢越發突顯.因為我們只要 " 對映 " 只要有了物件,

和物件跟表結構的對映,哪麼其它的工作都交給nhibernate 吧

兩個檔案 :

1.實體類

2.實體類對映到表結構的xml檔案.

我認為nhibernate 最大特點是物件對映,

如果沒有了物件對映哪麼它就失去了靈魂.

所以理解對映是靈活使用nhibernate 的關鍵.

讓我們來先看看概念:

1.在nhibernate 持久層中每個實體模型都對應了資料庫中的乙個表,

每個屬性都對應了表中的乙個字段,每個實體物件對應了表中的一條記錄。

使用nhibernate 時資料庫設計的一些想法

1.在設計表結構時,保證每乙個表都必須有主鍵

2.在欄位名字的定義上,最好不要用下劃線,全部使用英文,

個人建議使用首字母大寫的縮寫形式

安全問題:

不用擔心nhibernate會被sql注入,事實上他的注入風險要遠低於你直接手寫的風險,

當開發人員累了是否不經意寫出類似這種** : string sql = "select * from a where id=" + id;

也許這種語句是你不想的.他破壞了你的原則"只用引數",但確寫在了程式裡.增加了風險,

而nhibernate 的概念 物件屬性永遠對應著 表字段 當你的查詢會被轉成 類似這種 where id=@id;

風險降低!

Springdata redis在專案中的使用

org.springframework.data spring data redis 1.0.3.release log4j log4j org.slf4j slf4j log4j12 spring維護的使用redis用到的bean rediskeyutils類 public class redis...

Visual Source Safe在專案中的使用

從這週開始正式著手對銳傲部落格進行修改,王老師把 放到了vss中,但是由於我的電腦和伺服器不在同一ip位址段中,導致每次使用的時候都需要手工進入。當在伺服器中架設好後,客戶端使用時在 開始 中選擇 執行 輸入伺服器的ip位址 此時可以看到乙個對話方塊,表明已連線到伺服器,要求輸入使用者名稱和密碼 這...

gradle在專案中的應用

compilesdkversion 代表是使用的sdk版本buildtoolsversion 代表構建工具的版本,一般都是sdk相配套的。在專案建立的時候就會自動生成signingconfigs 簽名配置,主要有 develop,release develop 開發時候的配置keyalias apk...