Professional Documents
Culture Documents
com
Ni dung trnh by
Hibernate Query Language (HQL)
HQL from
HQL select HQL aggregate function
HQL where
HQL - Expression HQL order by
Upload by Cafeitvn.com
JDBC - SQL
JDBC truy thao bng s dng cc cu lnh SQL thc hin vn d liu truy vn d liu v cc tc cp nht nh thm, xa, sa trn d liu.
thao tc tt cc cu lnh SQL cn quan tm n cc bng, cc dng, cc ct v mi quan h gia cc bng v c bit l h qun tr c s d liu ang lm vic. Kt qu tr v ca cu lnh truy vn l danh sch cc dng d liu.
Upload by Cafeitvn.com
Hibernate - HQL
Hibernate cung cp cc API cho php thc hin tc thao tc cp nht nh thm, xa, sa. Hibernate cung cp ngn ng truy vn rt mnh c gi l Hibernate Query Language (HQL). HQL c lp h qun tr c s d liu v c Hibernate thng dch sang SQL tng ng trong qu trnh thc thi. HQL l ngn ng truy vn theo hng i tng. Kt qu truy vn l i tng Hibernate s dng cc lp i tng v cc thuc tnh thay cho cc bng v cc ct.
4
Upload by Cafeitvn.com
Tn cc lp i tng
Cc thuc tnh trong lp i tng V d 2 cu truy vn ging nhau
select s from Sach s <-> SELECT s FROM Sach s Select s From Sach s <-> SELECT s FROM Sach s
Upload by Cafeitvn.com
from DanhMuc
select dm from DanhMuc dm select dm from DanhMuc as dm
Ly tt c i tng sch
from Sach select s from Sach s
Upload by Cafeitvn.com
Upload by Cafeitvn.com
- phn trang
String hql = "from Sach"; Query query = session.createQuery(hql); query.setFirstResult(3); query.setMaxResults(5); List<Sach> ds=query.list();
- Ly t v tr th n (tnh t 0) setFirstResult (int n) - ly ti a m i tng setMaxResults (int m) - Tng t trong MYSQL LIMIT N, M
Upload by Cafeitvn.com
HQL - join
cross join
Upload by Cafeitvn.com
10
Upload by Cafeitvn.com
11
Upload by Cafeitvn.com
HQL
inner join
12
Upload by Cafeitvn.com
HQL
left join
2 danh mc khng c
sch no thuc v
13
Upload by Cafeitvn.com
HQL
right join
14
Upload by Cafeitvn.com
HQL
s.danhMuc
15
Upload by Cafeitvn.com
HQL
s.danhMuc
16
Upload by Cafeitvn.com
HQL - select
1 2 3 String hql = "select s.danhMuc from Sach s"; Query query = session.createQuery(hql); List<DanhMuc> ds=query.list();
17
Upload by Cafeitvn.com
HQL - select
1 2 3 String hql = "select s.danhMuc.tenDanhMuc from Sach s"; Query query = session.createQuery(hql); List<String> ds=query.list();
18
Upload by Cafeitvn.com
HQL - select
1 2 3 4 5 6 7 8 9 String h ="select s.maSach, s.tenSach, s.danhMuc from Sach s"; Query query = session.createQuery(h); List<Object[]> ds=query.list(); for(int i=0; i<ds.size(); i++){ Object[] objs=ds.get(i); String maSach=(String)objs[0]; String tenSach=(String)objs[1]; DanhMuc dm=(DanhMuc)objs[2]; }
19
Upload by Cafeitvn.com
HQL - select
1 2 3 4 String hql ="select distinct s.danhMuc.tenDanhMuc from Sach s"; Query query = session.createQuery(hql); List<String> ds=query.list();
20
Upload by Cafeitvn.com
HQL - select
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
21
package pojo; public class MyClass { private String maSach; private String tenSach; private DanhMuc danhMuc; public MyClass() { } public MyClass(String maSach, String tenSach, DanhMuc danhMuc) { this.maSach = maSach; this.tenSach = tenSach; this.danhMuc = danhMuc; } //Getters & Setters }
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012
Upload by Cafeitvn.com
HQL - select
1 2 3 4 5 6 7 8 9 String hql = "select new pojo.MyClass (s.maSach, s.tenSach, s.danhMuc) from Sach s"; Query query = session.createQuery(hql); List<MyClass> ds=query.list(); for(int i=0; i<ds.size(); i++){ MyClass my=ds.get(i); String maSach=my.getMaSach(); String tenSach=my.getTenSach(); DanhMuc dm=my.getDanhMuc(); }
22
Upload by Cafeitvn.com
min
max count
sum
23
Upload by Cafeitvn.com
24
Upload by Cafeitvn.com
HQL - where
1 2 3 4 5 1 2 3 4 5 6 7 8 9 String tenSach="Java"; String hql = "from Sach s where s.tenSach like :tenSach"; Query query = session.createQuery(hql); query.setString("tenSach", "%"+tenSach+"%"); ArrayList<Sach> ds=query.list(); String tenDanhMuc="Java"; String giaBan=20000; String hql="from Sach s where s.danhMuc.tenDanhMuc=:tenDanhMuc and s.giaBan>:giaBan" Query query = session.createQuery(hql); query.setString("tenDanhMuc", tenDanhMuc); query.setString("giaBan", giaBan); ArrayList<Sach> ds=query.list();
25
Upload by Cafeitvn.com
HQL - Expression
+, -, *, /
in, not in, between, is null, is not null, is empty, is not empty, member of, not member of
case ... when ... then ... else ... end
26
Upload by Cafeitvn.com
HQL - Expression
concat(...,...)
coalesce() , nullif()
str(), ...
27
Upload by Cafeitvn.com
HQL order by
1 2 3 4 5 6 7 8 9 String tenSach="Java";
String hql = " from Sach s"; hql=hql +" where s.tenSach like :tenSach"; hql=hql +" order by s.tenSach desc";
Query query = session.createQuery(hql); query.setString("tenSach", "%"+tenSach+"%"); ArrayList<Sach> ds = query.list();
28
Upload by Cafeitvn.com
29
Upload by Cafeitvn.com
HQL subquery
1 2 3 4 5 6 7 8 9 String hql = " select s"; hql = hql + " from Sach s"; hql = hql + " where s.giaBan > "; hql = hql + " ("; hql = hql + " select avg(s.giaBan)"; hql = hql + " from Sach s"; hql = hql + " )"; Query query = session.createQuery(hql); ArrayList<Sach> ds = query.list();
30
Upload by Cafeitvn.com
31
Upload by Cafeitvn.com
HI V P
Upload by Cafeitvn.com
32