QBC資料查詢 hibernate之查詢語句

2022-04-28 20:06:11 字數 2972 閱讀 5966

敘:之前介紹過hibernate的hql(hibernate query language)的查詢資料方式,現在我學習記錄一下關於hibernate的另乙個查詢資料的方式–qbc,qbc資料查詢全稱是(query by criteria資料查詢),下面是我學習的筆記~

qbc(query by criteria)查詢方式是hibernate提供的「更加物件導向」的一種檢索方式。qbc在條件查詢上比hql查詢更為靈活,而且支援執行時動態生成查詢語句,因此不需要手動設定查詢語句。

qbc查詢主要由criteria介面、criterion介面和expression類組成。criteria介面是hibernate api中的乙個查詢介面,它需要有session進行建立。criterion是criteria的查詢,在criteria中提供了add(criterion criterion)方法來新增查詢條件。使用qbc檢索物件的示例**如下圖所示:

//建立 criteria 物件

criteria criteria = session.createcriteria(customer.class);

//設定查詢條件

criterion criterion = restrictions.eq("id", 1);

//新增查詢條件

criteria.add(criterion);

//執行查詢,返回查詢結果

listcs = criteria.list();

上述**中意思是查詢customer物件所對映的資料表中id為1的資料;

qbc檢索是使用的restrictions物件編寫查詢條件的,在restrictions類中提供了大量的靜態方法來建立查詢條件。其常使用的方法如下表所示:

2.1. 基本查詢

此查詢是qbc的基本查詢方式,沒有任何修飾,查詢所有一張表的所有資料;

@test

// qbc基本查詢

public void demo1()

bt.commit();

session.close();

}

qbc查詢不需要查詢語句,直接在createcriteria()括號中加入索要查詢的表的對映物件名;

2.2. 條件查詢

條件查詢需要使用到add()方法來進行新增查詢條件,呼叫restrictions類以及這個類中的方法,具體**如下:

@test

// qbc條件查詢

public void demo2()

bt.commit();

session.close();

}

**中使用的restrictions物件的ideq()方法,這個方法是id值等於括號內設定的id值,然後執行後程式會自動匹對id列的所有值;

當然,也可以用模糊查詢like(),範圍查詢gt()等;

2.3. 分頁查詢

qbc的分頁查詢和hql的分頁查詢一樣,均是由起始索引方法setfirstresult()和每頁最大顯示數方法setmaxresult()來設定,具體**如下:

@test

// qbc分頁查詢

public void demo3()

bt.commit();

session.close();

}

注意:起始索引值是從0開始的,因此想要列印出以id為n開頭的資料時,將索引值設定成n-1方可;

2.4. 排序查詢

使用addorder()方法然後在方法內部呼叫order類中的方法,公升序或者降序,然後在呼叫的方法內部設定根據物件的哪個屬性進行排序;

@test

// qbc排序查詢

public void demo4()

bt.commit();

session.close();

}

2.5. 統計查詢統計查詢使用的方法和之前的就有所不同了,使用的是setprojection()方法,然後再方法中呼叫projections類的查詢規則(就是統計哪方面的資料),詳細**如下:

@test

// qbc統計查詢

public void demo5()

將離線查詢的業務流程和傳統的criteria的業務流程進行對比:

detachedcriteria翻譯為離線條件查詢,因為它是可以脫離session 來使用的一種條件查詢物件,我們都知道criteria物件必須由session物件來建立。那麼也就是說必須先有session才可以生成criteria物件。而 detachedcriteria物件可以在其他層對條件進行封裝。

這個物件也是比較有用的,尤其在 ssh 整合以後這個物件經常會使用。 它的主要優點是做些特別複雜的條件查詢的時候,往往會在web層向業務層傳遞很多的引數,業務層又會將這些引數傳遞給dao層。 最後在 dao 中拼接 sql完成查詢。有了離線條件查詢物件後,那麼這些工作都可以不用關心了, 我們可以在web層將資料封裝好,傳遞到業務層,再由業務層傳遞給dao完成查詢。

具體**如下所示:

@test

// qbc離線查詢

public void demo1()

bt.commit();

}

這個知識點並不難,根據注釋記著就行了;

jmeter根據查詢資料查詢結果

前兩天試了 一下根據請求查詢出的userid,查詢該userid的資訊。1.新建 1 新建執行緒組 2 新建http請求預設值 3 新建http cookie管理器 4 新建http資訊頭管理器 5 新建登入請求,並新增正規表示式獲取token 2.迴圈控制器 1 新增迴圈控制器,設定迴圈次數 2 ...

ABAP 資料查詢

並列查詢。report z select for all entries.data begin of wa spfli,carrid type spfli carrid,connid type spfli connid,end of wa spfli,begin of wa scarr,carrid...

MySQL資料查詢

1.基本查詢語句 select語句是最常用的查詢語句,它的使用方式有些複雜,但功能卻相當強大。select selection list 要查詢的內容,選擇哪些列 from資料表名 制定資料表 where primary constraint 查詢時需要滿足的條件,行必須滿足條件 2.單錶查詢 單錶...