1.Hibernate查詢
*1)HQL查詢
Hibernate Query Language.
HQL屬于面向?qū)ο蟮牟樵冋Z言,語句中使用Hibernate映射的類和屬性名,不能使用表名和字段名.類和屬性大小寫敏感.關(guān)鍵字不區(qū)分大小寫
HQL語句的結(jié)構(gòu)與SQL相似.
a.支持select,from,group by,order by,having
b.支持各種運(yùn)算符和表達(dá)式,例如+,-,>,<等
c.支持分組函數(shù),max,min,avg,sum,count
支持like,in,between...and,and ,or
e.HQL不能使用 select *
f.HQL不能使用 join ... on語句.on語句不支持
使用示例:單表基本操作
a. "select nickname from User where nickname<>''";
返回的是一個(gè)List
b."select id,nickname from User where nickname<>''";
返回的是一個(gè)List
c."select new User(id,nickname) from User where nickname<>''";
返回的是一個(gè)List
d."from User where nickname<>''";
返回的是一個(gè)List
e."select count(*) from User";
返回的是List
f."from User where nickname like ?";
query.setString(0,"&s%");
query.list();
g."from User where nickname like :name";
query.setString("name","&s%");
query.list();
h.將hql寫入到hbm.xml
在hbm.xml中定義hql
......映射信息
from User where id=:id
]]>
在程序中使用下面代碼獲取Query對象
Query query = session.getNamedQuery("findById");
i.HQL分頁查詢
//設(shè)置分頁查詢參數(shù)
//設(shè)置抓取記錄的起始位置,從0開始
query.setFirstResult(0);
//設(shè)置最多抓取5個(gè)
query.setMaxResults(5);
List
j.對象關(guān)聯(lián)查詢
等值連接1
from
Address address,
User user
where
address.userId = user.id;
等值連接2
from Address address
inner join address.user user
左外連接
from Address address
left outer join address.user user
2)Criteria條件查詢(了解)
Criteria c = session.createCriteria(User.class);
3)SQL原生查詢(了解)
SQLQuery sqlQuery = session.createSQLQuery(sql);
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |
![]() | ![]() .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 |