NHibernate輸出SQL語句

2021-09-06 23:43:56 字數 828 閱讀 1341

用了nhierbate之後,很少需要寫原生的sql語句,由於總是看不到sql語句,所以有時候對sql調優非常不利。因此產生了讓nhibernate輸出它所生成的sql語句的想法,以便於後續調優。

在控制台程式中,要檢視nhibernate所生成的sql語句,方法非常簡單,只需要改下配置檔案就ok了。

<

property

name

="show_sql"

>true

property

>

<

property

name

="format_sql"

>true

property

>

第乙個引數用於配置是否輸出sql語句到控制台。

第二個引數用於輸出的sql語句是否格式化以便於檢視。

只設定第乙個與兩個都設定的差別如下:

只顯示不格式化:

格式化後:

上面的方法是配置控制台顯示的,如果不在控制台裡執行,是web程式呢。

web程式輸出的方式也不難。

第一步:寫乙個類,繼承自emptyinterceptor並重寫onpreparestatement方法。

public

class

sqlwatcher : emptyinterceptor

}

第二步:在建立opensession的時候,用此類的物件作為引數傳入

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內部的核心類,它維...