NHibernate 系列研究 二

2021-09-05 15:12:21 字數 1614 閱讀 6801

為了進一步研究nhibernate,決定分析其源**,如有感興趣者,歡迎一起研究,本節研究nhibernate配置和持久物件對映檔案。nhibernate配置

有三種方式來存放nhibernate的配置

1, 作為單獨的一節放在相應程式的配置檔案中,對於執行檔案或類庫為檔名稱後加.config,對於asp.net則是放在web.config中。這種方式必須在配置檔案的configsetions中宣告nhibernate的配置節,配置內容由cfg.environment類來讀取,該類所有成員均為靜態的,另外它還定義了配置中key值的常數。

2. 放在乙個單獨的配置檔案中,預設為hibernate.cfg.xml,使用時必須呼叫cfg.configuration.config()。如不是預設的配置檔名,還必須指明配置檔案名稱。這種方式最適合多資料庫的情況,可以為每個資料庫建立乙個配置檔案。

3. 手工在程式中加入,配置內容最後將加入到cfg.configuration.properties屬性中,此屬性為一idictionary物件,並且為public,其餘的就不用多話了吧。

下面對幾個重要的key值說明一下:

hibernate.connection.provider

連線提供者,取值必須是實現了iconnectionprovider介面的類的全名,當前版本只能取值nhibernate.connection.driverconnectionprovider;

hibernate.connection.driver_class

資料驅動類,取值必須是實現了idriver介面的類的全名,常用的選擇有nhibernate.driver.sqlclientdriver, nhibernate.driver.oledbdriver等;

hibernate.dialect

資料庫方言,取值必須是繼承之dialect的類的全名,最常用的就是nhibernate.dialect.mssql2000dialect了, 其它的沒用過,不清楚能不能正常使用;

hibernate.connection.connection_string

連線字串,取值與driver_class對應即可;

hibernate.show_sql

指明是否在log4net日誌中顯示sql語句,主要用於除錯,取值為true或false;完整的配置key列表請檢視cfg.environment類中的常數宣告。

持久物件對映檔案

nhibernate為我們提供了很多方式將持久物件對映檔案加入到cfg.configuration類,下面將其一一列出:

addxmlfile:加入包括物件對映資訊的檔案;

addxmlstring:加入包含對映資訊的字串;

adddocument:加入包含對映資訊的xmldocument;

addinputstream:加入包含對映資訊的輸入流;

addxmlreader:加入包含對映資訊的xmlreader;

addresource:加入指定程式集的對映資訊資源;

addclass:加入以類名指定的對映資訊資源,對映檔案必須為classname.hbm.xml;

addassembly:加入指定程式集名稱的對映資訊資源

注意:如果對映資訊為檔案形式,包括加入到程式集資源的檔案,那麼檔名必須以.hbm.xml結尾。

nhibernate入門系列 值集合對映

在資料庫的多對多關係中,實現方法是通過乙個額外的關聯表將兩個主表關聯起來,關聯表中只儲存兩個主表的主健,顯然,主表與關聯表是一對多的關係.這樣兩個主表就通過這個關聯表構成了乙個多對多的關係.典型的例子就是使用者和許可權了,每個使用者可以有多個許可權,而每個許可權也可以分配給多個使用者.通過乙個使用者...

NHibernate初學者指南系列文章導航

經過三個多週的時間,終於將這個系列完成了,謝謝大家的關注和支援,有很多不足之處還望大家包涵。本系列參考的書籍為nhibernate 3 beginner s guide一書。nhibernate初學者指南 1 開篇 nhibernate初學者指南 2 乙個完整的例子 nhibernate初學者指南 ...

NLucene研究系列 1 概述

lucene是apache軟體 會jakarta專案組的乙個子專案,是乙個開放源 的全文檢索引擎工具包,即它不是乙個完整的全文檢索引擎,而是乙個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文字分析引擎 英文與德文兩種西方語言 lucene的目的是為軟體開發人員提供乙個簡單易用的工具包,以...