用了nhierbate之後,很少需要寫原生的sql語句,由於總是看不到sql語句,所以有時候對sql調優非常不利。因此產生了讓nhibernate輸出它所生成的sql語句的想法,以便於後續調優。
在控制台程式中,要檢視nhibernate所生成的sql語句,方法非常簡單,只需要改下配置檔案就ok了。
<第乙個引數用於配置是否輸出sql語句到控制台。property
name
="show_sql"
>true
property
>
<
property
name
="format_sql"
>true
property
>
第二個引數用於輸出的sql語句是否格式化以便於檢視。
只設定第乙個與兩個都設定的差別如下:
只顯示不格式化:
格式化後:
上面的方法是配置控制台顯示的,如果不在控制台裡執行,是web程式呢。
web程式輸出的方式也不難。
第一步:寫乙個類,繼承自emptyinterceptor並重寫onpreparestatement方法。
public第二步:在建立opensession的時候,用此類的物件作為引數傳入class
sqlwatcher : emptyinterceptor
}
isession session = sessionfactory.opensession(new sqlwatcher());效果如下:
參考:
Nhibernate執行帶輸出引數的儲存過程
可能會有業務邏輯問題而且會帶輸出 引數,可是nhibernate好像不支援out 配置 我沒找到不知道有沒有 換了個方法來執行 user id in integer,user name in varchar2,user pwd in varchar2,msg out varchar2 factory...
nhibernate架構分析
以nhibernate prealpha build 2為準 從圖中可以看到,session和sessionfactory是nhibernate的核心部分。sessionfactory維護到持久機制 資料庫 的連線並對它們進行管理,同時還儲存著所有持久物件的對映資訊。sessionfactory由c...
NHibernate主要介面
一 介面簡介 isession isession是面向使用者的主要介面,主要用於物件持久化,資料載入等操作,支援資料庫事務,它隱藏了nhb內部複雜的實現細節,isession由isessionfactory建立。isessionfactory isessionfactory是nhb內部的核心類,它維...