国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

nhibernate數(shù)據(jù)加載之Criteria加載

2024-07-21 02:23:21
字體:
供稿:網(wǎng)友

商業(yè)源碼熱門下載www.html.org.cn

criteria是通過一組條件表達(dá)式(expression)來加載數(shù)據(jù)的,它返回滿足條件的對(duì)象集合。

主要接口為icriteria,實(shí)現(xiàn)為criteriaimpl類,此類加有internal修飾,因此不能在程序集外顯示創(chuàng)建,
nhibernate在session對(duì)象中為我們提供了一個(gè)方法createcriteria,此方法返回icriteria接口。

這里列出了icriteria接口的一些方法:
setmaxresults:設(shè)置返回的最大結(jié)果數(shù),可用于分頁;
setfirstresult:設(shè)置首個(gè)對(duì)象返回的位置,可用于分頁;
settimeout:設(shè)置操作的超時(shí)值,此值將傳遞給idbcommand對(duì)象;
add:加入條件表達(dá)式(expression對(duì)象),此方法可多次調(diào)用以組合多個(gè)條件;
addorder:加入排序的字段(order對(duì)象);
list:返回滿足條件的對(duì)象集合。

criteria數(shù)據(jù)加載的關(guān)鍵就在expression對(duì)象上,此對(duì)象組成了查詢語句的where部分。

expression是一個(gè)abstract(抽象)類,它通過一組static方法實(shí)現(xiàn)factory method(工廠方法)模式,這些static方法返回的都是expression類的子類,下面列出一些常用的:

eq:返回eqexpression,這是一個(gè)相等判斷的表達(dá)式;
like:返回likeexpression,這是一個(gè)like判斷的表達(dá)式;
gt:返回gtexpression,這是一個(gè)大于判斷的表達(dá)式;
and:返回andexpression,這是兩個(gè)表達(dá)式and操作后的表達(dá)式;
or:返回orexpression,這是兩個(gè)表達(dá)式or操作后的表達(dá)式;

更多的expression請(qǐng)參考相關(guān)文檔或源代碼。

下面以幾個(gè)例子來說明criteria數(shù)據(jù)加載的用法:

1. 取得用戶名(username)為billy的用戶對(duì)象:

??? expression ex = expression.eq( "username", "billy" );
??? ilist users = session.createcriteria(typeof(user)).add( ex ).list();

2。取得用戶名(username)為billy, 密碼為123456的用戶對(duì)象

??? expression ex = expression.and( expression.eq("username", "billy"),
??? expression.eq("password", "123456") );
??? ilist users = session.createcriteria(type(user)).add( ex ).list();

3. 取得數(shù)據(jù)中第20-40的用戶對(duì)象。

??? ilist users = session.createcriteria(typeof(user))
???????????????????????????? .setfirstresult(20).setmaxresults(40)
???????????????????????????? .list();

對(duì)于sqlserver,數(shù)據(jù)定位采用的是idatareader前滾至firstresult處,然后取maxresults條記錄。

criteria數(shù)據(jù)加載的不足:
1. 當(dāng)使用setfirstresult和setmaxresults限制返回的對(duì)象數(shù)時(shí),無法得知對(duì)象的總數(shù);
2. 當(dāng)前版本不支持關(guān)聯(lián)查詢(hibernate好像可以);


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临朐县| 遂平县| 新郑市| 太谷县| 百色市| 浮梁县| 双鸭山市| 喀喇| 石楼县| 阳信县| 吉安市| 台州市| 宁河县| 丽水市| 乐亭县| 喜德县| 宕昌县| 资兴市| 汝城县| 莎车县| 岳池县| 河北省| 琼中| 伽师县| 中西区| 四子王旗| 潜山县| 衡山县| 赫章县| 清丰县| 二连浩特市| 江都市| 麻城市| 于都县| 遵化市| 乌兰察布市| 景德镇市| 东明县| 农安县| 西丰县| 东港市|