hibernate建表sql
Ⅰ Hibernate中的sql寫法。
我比較喜歡hibernate本身自帶的HQL語言,增刪改查語句基本不用自己寫。
添加:
Admin admin=new Admin();
admin.set...();
session.save(admin);
刪除:
session.delete(admin);
修改:
Admin admin=session.load(Admin.class,new Integer(i));
session.saveOrUpdate(admin);
查詢:
Query query = session.createQuery("select OBJECT(o) from Admin o order by o.adminid");
亦可寫成:
Query query = session.createQuery("from Admin");
注意:hibernate的業務邏輯操作必須放在事務中,代碼如下:
Transaction tr = session.beginTransaction();
try {
****增刪改查語句***
// 提交事務
tr.commit();
} catch (Exception e) {
// 回滾事務
tr.rollback();
} finally {
}
還有,hibernate內的語句不是SQL,而是HQL,但它支持SQL,又它特定的寫法;表名不是資料庫的名字,而是映射後的實體類(表)的名字;而且,是直接對資料庫進行操作,也就hibernate的事務一提交,資料庫內的信息就做了相應的修改;最後,hibernate不是個軟體,而是一個插件,通俗的說法是別人寫好的「包」,導入項目後,根據「包」的規范去做快速開發。
Ⅱ nhibernate 怎麼寫sql語句啊 急
nhibernate 怎麼寫sql語句啊 急
NHibernate 檢視生成的sql語句:
其實就是Interceptor的應用, 原始碼中Interceptor的預設實現是EmptyInterceptor,
[Serializable]
public class EmptyInterceptor : IInterceptor
{ 前面省略n行程式碼
public SqlString OnPrepareStatement(SqlString sql)
{
return sql;
}
} public class MyInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
return base.OnPrepareStatement(sql);
}
} 我們要做的就是繼承EmptyInterceptor,重寫OnPrepareStatement()方法,重寫方法裡面就是你大展拳腳的地方了,
想寫檔案寫檔案,想輸出到頁面就輸出到頁面,什麼都不做都可以,如上
怎麼用呢?
public override void Update(Admin entity)
{
ISession session = HibernateTemplate.SessionFactory.OpenSession(new MyIntercepotr);
session.Update(entity);
session.Flush();
}
在你想要檢視的操作中,開啟session 的時候新增上自定義的攔截器就可以了,想給所有的操作都配置的話就要用到全域性配置檔案了。
重寫OnPrepareStatement()的時候一句話都不改,我只是在這里打一個斷點而已,只要看看生成的sql語句就行了,然後去修改配置檔案再來debug,確認怎麼配置生產的sql最優。
用LinqPad檢視Nhibernate生成的sql語句
使用Nhibernate開發一般都要對Nhibernate生成的sql語句進行檢視及分析,檢視Nhibernate生成的sql語句,可以使用NHProfiler和log4。但NHProfiler是要付費的(當然,在天朝,你懂的……),用log4配置比較麻煩。今天在網上檢視Linq to Nhibernate資料的時候發現了一個工具LinqPad,於是又找了相關資源,發現它還真能實現Nhibenate語句的檢視。廢話少說,看下面的使用方法吧!
1、 下載LinqPad,地址::linqpad./
2、 配置LinqPad,執行LinqPad,在選單里選擇Query—>Query Propeties;在選項卡中Additional References,點選「Browse…」按鈕,選擇專案中必要的Dll。
Dll包括:資料庫驅動dll,實體對映dll(圖中的Entity),nhibernate相關的dll
如何播放藍光碟?急!
要藍光播放器啊
tmt
powerdvd
aurora blu-ray player
隨便弄個破解的就成
你要是不切換字幕音訊啥的,就BDMV 檔案里邊,找最大的.m2ts 的檔案
急,女朋友讓猜迷語呢!!
名字,結婚後,女人是不會用男人的名字的,也不對。
只有男人的姓氏,才是正確答案,理由如下:
1、東方女人在結婚後,人會稱其「某太太」,這個「某」就是老公的姓氏。
西方女人在結婚後,就會將姓改為和老公一樣。
2、長度上,東方的姓氏通常只有一個字,而西方姓氏卻是一串字母,比東方的長。
3、男人當和尚後,只有法號,沒有姓名,所以不用。
小金毛拉肚子··急
是吃撐的拉肚子就給他吃些健胃消食的葯
要是吃壞肚子了就給它喝一支慶大黴素的注射液
關於基金定投---急!
用身份證登陸登陸你買的基金的基金公司網站
密碼是你的身份證後6位數字。。
登陸進去後,就可以查到您所想知道的資訊了!
還有一種方式是你去銀行櫃台列印基金對賬單,上面也會有你想知道的資訊!
急!化學,SO2的制備
應該該不會產生H2,可以用排NaOH溶液的方法收集,再點燃收集到的氣體看看是不是H2。但估計正常情況下,收集不到氣體。
寫一個小片段~~~急
今天舉行同事聚餐,公司幾個美女打扮的千姿百態,在這個風和日麗的天氣里,一起去「全聚德」烤鴨店撮了一頓,大家都對那烤鴨贊不絕口,一邊津津有味的吃,一邊興致勃勃的侃大山,公司的美女真是多,鶯鶯燕燕坐滿一屋芳菲,真是百花盛開呀!
數學題,求解答,急啊
我敢打賭 你上課沒認真聽
4:sin(2x+π/2)=cos2x,這是三角函式的誘導公式 書上有 y=cos2x是偶函式 這種東西你畫個圖就容易理解了!
5:設a=(i,j) b=(x,y) 若ab, i/x=j/y
6:a·b=|a|*|b|cos<a,b> 這是公式 推導過程 自己看書
7:橫座標伸長2倍 就是擴大2倍 那麼就是用1/2x替換以前的x 就行了!這個還是要根據自己畫圖來理解!
8:[π/2,π]之間 就確定了cosΘ的正負 在[π/2,π]之間 cosΘ為負數,至於你後面那個式子
是根據二倍角公式 推導而來的
這是二倍角公式的其中一個
cos2α=cos²α-sin²α
=1-2sin²α
=2cos²α-1
上式中 可以找到你要的依據!
不過你字還算可以!
usewildcards是什麼意思,急!
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
布滿造句長一點,急!
因為要搶救傷員,軍醫在手術室里忙了幾天幾夜,眼睛布滿了血絲,讓人既心疼又感動。
滿意請採納!謝謝!
Ⅲ Hibernate的HQL和sql有什麼區別
sql 面向資料庫表查詢x0dx0ax0dx0ahql 面向對象查詢x0dx0ax0dx0ahql : from 後面跟的 類名+類對象 where 後 用 對象的屬性做條件x0dx0ax0dx0asql: from 後面跟的是表名 where 後 用表中欄位做條件x0dx0ax0dx0a查詢x0dx0ax0dx0a在Hibernate中使用查詢時,一般使用Hql查詢語句。x0dx0ax0dx0aHQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。
Ⅳ Hibernate 的HQL和sql有什麼區別
sql 面向資料庫表查詢
hql 面向對象查詢
hql : from 後面跟的 類名+類對象 where 後 用 對象的屬性做條件
sql: from 後面跟的是表名 where 後 用表中欄位做條件
查詢
在Hibernate中使用查詢時,一般使用Hql查詢語句。
HQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。
Ⅳ Hibernate 的HQL和sql有什麼區別
hql 是面向對象的 這是主要區別
就是hql操作的對象不再是表了 而是實體類 這樣就把面向對象的一些特點弄進來了 比如 班級類裡面有很多學生
from 班級 where 學生.性別=「男」 如果是sql的話就需要鏈表查詢 這樣很麻煩 不是每一個程序員都是如同資料庫管理員一樣的。。