NHibernate MySQL的基本配置

2021-10-03 18:26:29 字數 2176 閱讀 2764

(二)配置

<?xml version="1.0" encoding="utf-8" ?>

nhibernate.driver.mysqldatadriver

server=localhost;database=newbooks;user id=root;password=8888

nhibernate.dialect.mysql55dialect

以上配置中,需要強調的是,dialect要選對。關於更詳細的配置屬性,可參考有關nhibernate文件。

使用xml格式的對映檔案必須以hbm.xml作為檔名的結尾,比如

<?xml version="1.0" encoding="utf-8" ?>

(1)最簡單的寫法,type指hibernate的資料型別,不是資料庫中的資料型別。這種寫法表示id是由程式賦值的,而不是hibernate或資料庫自動生成id。

(2) 

的寫法與(1)寫法等效。

(3)元素column中可以新增sql-type屬性,明確指定資料庫中的資料型別,常常是省略的。

(4)如果要自動生成id,則寫法可以如下:

(5)需要說明的是,在hibernate配置中要把dialect配置正確,與資料庫版本對應起來,否則如果用的5.5版本mysql,而配置用用mysql5dialect而不是mysql55dialect,對映會出現問題。

(四)初始化

(1)初始化

configuration config = new configuration();

//  config.addfile("infrastructure\\auction.hbm.xml");    //如果不採用上面的addassembly方法,也可以直接新增對應的檔案路徑,該路徑表示相對於最終生成的程式資料夾(debug,release)中的相對路徑

config.configure();   執行構造

(2)自動生成資料庫表

可以使用nhibernate來初始化資料庫生成對應的表(注:如果資料庫已經有了,不需要這一步;或者可以直接生成手工寫sql命令建立資料庫表,若這樣,也不要這一步)

當完成初始化後,用以下**可以生成表:

var schemaexport = new schemaexport(config);

schemaexport.create(true, true);  

可以做乙個project專門管理資料庫表的生成和更新,避免把這個放在應用程式專案中每次都去生成資料庫表。

(3)使用nhibernate

var sessionfactory = config.buildsessionfactory();

var s=sessionfactory.opensession();

(4)currentsessioncontext

通過sessionfactory物件取得session 的常用兩個方法,分別為opensession()和 getcurrentsession(),前者為新建立乙個session,後者為取得當前的session(需要利用currentsessioncontext類的靜態方法bind()先繫結由opensession()方法建立的例項,然後getcurrentsession()才能獲得當前例項。

一種可行的**案例如下:

using(var session=_sessionfactory.opensession())

currentsessioncontext.bind(session);  //繫結

using(var transaction=session.begintransaction())

//呼叫某個repository物件中的方法,在該方法中還將用到session物件。一張方式是把session傳過去;另一種是該repository張先前建立的時候已經通過ioc注入了_sessionfactory物件,這時可以直接使用該_sessionfactory的getcurrentsession()來獲取當前繫結的session

currentsessioncontext.unbind(_sessionfactory);//解除繫結

為了配合getcurrentsession()方法的使用,需要在nhibernate的配置xml中設定current_session_context_class屬性,比如:

thread_static

Ant testng selenium基本配置

ant 配置 1 在工程根目錄下新增 build testng xslt.xml 2 新建lib目錄,新增xml檔案裡的jar包 3 新建res目錄,新增testng results.xsl 檔案 build外掛程式美化報包需要 testng.xml檔案也放置在根目錄 報告目錄,工程 report ...

create react app腳手架基本配置講解

或者直接設定npm的預設倉庫 npm config set registry 首先初始化乙個專案 下面就專案目錄結構進行分析 1 專案目錄下面的public和src目錄下的index檔案必須存在且不能修改名稱 其他的檔案可以刪除和修改名稱,因為webpack只會編譯src目錄下面的檔案,所以專案中需...

webpack學習之webpack基本配置

壓縮檔案 分割 提取公用 模組合併 把多個模組合併 自動重新整理 熱更新 改變,自動重新整理頁面 由於外掛程式可以攜帶引數 選項,必須在 webpack 配置中,向 plugins 屬性傳入的是外掛程式的例項。let require clean webpack plguin new cleanweb...