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

NHibernate Step by Step (四)Session、Query及

系統 1990 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條評論
主站蜘蛛池模板: 亚洲另类图| 欧美成人性色生活片天天看 | 中文字幕日韩一区二区三区不 | 欧美80岁老妇一级毛片 | 久久99精品久久久久久久不卡 | 久久cao| 四虎成人免费影院网址 | 国产色婷婷精品免费视频 | 亚洲第一永久在线观看 | 久久九九99热这里只有精品 | 国产第113页| 欧美毛片网 | 日本亚洲黄色 | 三及毛片 | 亚洲欧美日韩一区二区在线观看 | 狠狠综合久久综合网站 | 九色综合久久综合欧美97 | 四虎永久网址 | 欧美在线小视频 | 91综合网 | 中文字幕精品在线观看 | 日韩一区二区三区不卡 | 性欧美视频a毛片在线播放 性欧美视频在线观看 | 免费a级在线观看完整片 | 国产美女精品在线观看 | 国产精品网站在线观看 | 老司机午夜免费福利 | 久久免费视频网站 | 亚洲特级片 | 欧美成人免费xxx大片 | 99热最新在线观看 | av中文字幕在线 | 亚洲成人aaa | 伊人久久影院 | 久久综合色网 | 日韩中文字幕免费 | 欧美日韩性猛交xxxxx免费看 | 国产精品亚洲国产三区 | 欧美老妇免费做爰视频 | 国产精品久久久视频 | 久久国产综合精品欧美 |