QBC檢索方式

2021-05-03 21:11:30 字數 2086 閱讀 3644

依賴介面:criteria

資料模型:

tb_user(userid,username)

tb_addr(addrid,addrname,userid)

entity:

class addr

class user

備註:省略geters 和 seters

例:criteria c = session.createcriteria(user.class);

c.add(expression.eq("userid", 1));

user = (user)c.uniqueresult(); //有list users =  c.list();

執行為:select * from tb_user where userid = 1;

expression 的靜態介面

user 中的屬性和具體的值比較:

eq : 等於(=) expression.eq("userid",1)  select * from tb_user where userid=1

gt : 大於(>)  expression.gt("userid",1)  select * from tb_user where userid>1

ge : 大於等於(>=) expression.ge("userid",1)  select * from tb_user where userid>=1

lt : 小於(<)       expression.lt("userid",1)  select * from tb_user where userid<1

le : 小於等於(<=) expression.le("userid",1)  select * from tb_user where userid<=1

like:模糊查詢 expression.like("username","n%")  select * from tb_user where username like 'n%'

between : 在之間(between)  expression.between("userid",1,5)  select * from tb_user where userid between 1 and 5  

and    :

or     :

select * from user where userid=3 or userid=6

c.add(expression.or(expression.eq("userid",3),expression.eq("userid",6)));

sql   :expression.sql("lower(.name) like lower(?)","erica%",hibernate.string);

user 中的屬性和addr 中的屬性比較:使用前要呼叫criteria 的createalias

eqproperty("aa.addrid","this.userid")

gtproperty("aa.addrid","this.userid")

geproperty("aa.addrid","this.userid")

ltproperty("aa.addrid","this.userid")

leproperty("aa.addrid","this.userid")

criteria 的其他介面:

c.createalias("addrs", "aa") :建立addrs 的別名,效果是查詢時帶上tb_addr的內聯

如果不使用別名:效果是查詢時使用左連線

分頁//從第100條開始,檢索20條資料

c.setfirstresult(100);

c.setmaxresult(20);

排序//對結果進行排序

c.addorder(order.asc("userid"));//userid的公升序

c.addorder(order.desc("username")); //username的降序

expression 各方法中的屬性名引數是指entity中對應實際庫表字段的屬性名,而非庫表中的實際欄位名稱

expression.eq(filed field,value value);

filed 為類的屬性

QBC檢索方式

技術分析之qbc檢索方式 0.qbc query by criteria 按條件進行查詢 1.簡單查詢,使用的是criteria介面 listlist session.createcriteria customer.class list for customer customer list 2.排序...

Hibernate的QBC檢索方式

一直習慣了hibernate的hql查詢,一直也覺得挺方便,對於最近專案裡出現的qbc org.hibernate.criteria介面 也是報著一種看看的心理,因為做j2ee這麼久了,也寫了一大堆hql的工具類,起初的心理也只是看看而已 session session hibernatesessi...

Hiberante中的QBC檢索方式

qbc就是query by criteria qbc是hibernate提供的幾種檢索方式之一。一 這裡先小做乙個總結 hibernate檢索物件的方式有哪些呢?1 導航物件圖檢索方式。根據已經載入的物件,導航到其他物件。比如 對於已經載入的班級物件class1.呼叫它的getstudents 方法...