亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

NHibernate Step by Step (四)Session、Query及

系統 2323 0
我們總結一下在第二篇中的 Session 操作:

1. 獲取記錄

Personperson = (Person)session.Get( typeof (Person), 1 );

2. 保存記錄

session.Save(person);

3. 刪除記錄

Personperson = (Person)session.Get( typeof (Person), 1 );

session.Delet(person);

我們再來看看其它幾種方式:

1. Load

Personperson = (Person)session.Load( typeof (Person), 1 );

是不是感覺和 Get 一樣?其實……很不一樣!

Get 在找不到對象時會返回一個 null 引用,而 Load 則會拋出一個 ObjectNotFoundException ,所以,不應該用 Load 來判斷記錄是否存在。另外還有兩條非常重要的區別,我們將放在高級話題討論。

2. Query

IListlist = session.CreateQuery(“fromPerson”).List();

Personperson
= (Person)list[ 0 ];

~!#@^?? from Person??#$@*&^$

這是蝦米??

好象有點象 SQL ,不過少了個 select 啊!而且也沒有表名啊!

這就是久負盛名的 HQL —— Hibernate Query Language!

HQL 實際上是基于對象查詢的一種仿 SQL 腳本,在運行期間, Hibernate 會自動根據映 射關系將之轉換為真正的 SQL 語句來執行。

什么?又一種 SQL ?不是說使用 O/R Mapping 就可以不寫 SQL 了嗎,怎么又多了一種 SQL ”??

當然不是這樣了,之所以產生 HQL ,就是為了能夠更加靈活更加面向對象地操作數據 ,而且你不應該把 HQL 當成一種新的 SQL ,因
為它——太簡單好學了!

看看下面的 HQL ,是不是很熟悉??

select p.Name from Person as p where p.Id = 1
select Name from Person where Age > 20
select Id,Name from Person where Id > 1 and Age > 20


認出來老兄弟了吧!!

(從這里開始,我們給 person 表添加了一個 age 列,請注意)

ok ,我們這里就詳細解釋。

“from Person ” 意思是取出 Person 類映射的 person 表中的所有記錄,對應的 SQL 是:

Select * from person”

還可以加上別名: from Person (as) p = Select * from person (as) p

這樣一解釋就很清楚了吧!一句話,你便已經掌握了 HQL 50%

而“ select Name from Person” ,當然也就是只取 person 表的 name 列了!

你所知道的 where 中的 and or is like between > < = 等等都可以直接拿來使用,

如下:

select p.Name from Personp where p.Age > 20

from Personp where p.Age between 20 and 30

from personp where p.Age in ( 20 , 30 )

from personp where p.Name is null

from personp where p.Name like “Jaki %

注意:字段大小寫應該盡量跟屬性名稱保持一致,尤其是在使用別名的情況下,如:

p.age 將會導致一個“無法解析屬性 age “的錯誤。但是在不使用別名的情況下我的機器 上” age “和 ’Age “一樣可以通過,雖然如此,
建議還是跟類文件保持一致。

執行 HQL 是通過 IQuery 來實現的,如下是詳細的寫法:

IQueryquery = session.CreateQuery(“fromPerson”);

IListlist
= query.List();


通過 session 來創建一個 query ,然后執行 query List 方法,返回符合條件的 IList

如上面的“ from Person “,將返回 person 表的所有記錄, list 中將包含映射到 Person

的對應表中所有記錄的對象。

好了,這一篇就講這么多,我們下次再接著練習。
任何建議或者批評,請 e abluedog@163.com

NHibernate Step by Step (四)Session、Query及HQL


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产一级内谢a级高清毛片 国产一级片毛片 | 天天爽天天干天天操 | 久草中文视频 | 日韩精品亚洲精品485页 | 深夜久久| 俄罗斯毛片免费大全 | 久久国产三级精品 | 毛片免费高清免费 | 日本一级成人毛片免费观看 | 夭天干天天做天天免费看 | 国产区一区 | 欧美人成在线 | 午夜性a一级毛片 | 久久福利小视频 | 女人十六毛片 | 欧美一级特黄aaa大片 | 成人免费视频国产 | 簧片在线播放 | 四虎成人www国产精品 | 99九九精品国产高清自在线 | 九色国产在视频线精品视频 | 精品视频在线视频 | 一区中文字幕 | 337p日本大胆欧洲色噜噜高清 | 国产成人精品久久综合 | 国产精品18 | 亚洲国产成人在线观看 | 天天干天天摸 | 日韩伦理一区二区三区 | 久久久久久亚洲精品中文字幕 | 欧美嫩草| 一区二区三区高清不卡 | 四虎网站1515hh四虎免费 | 国内自拍 在线播放 网红 | 国产亚洲欧美一区 | 亚洲综合色dddd26 | 国产欧美日韩中文字幕 | 国产日韩精品一区二区在线观看 | 国产精品资源 | 四虎永久在线精品免费影视 | 日韩精品一区在线观看 |