(二)配置
<?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...