锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲高清乱码午夜电影网,亚洲一区二区三区AV无码,亚洲黄色免费网址http://m.tkk7.com/zilong/category/30722.html <center> 鏂扮殑寰侀?..... </center>zh-cnThu, 10 Apr 2008 10:05:24 GMTThu, 10 Apr 2008 10:05:24 GMT60hibernate 涓夌鏌ヨ鏂瑰紡 http://m.tkk7.com/zilong/archive/2008/04/10/191937.html闃夸紵闃夸紵Thu, 10 Apr 2008 09:41:00 GMThttp://m.tkk7.com/zilong/archive/2008/04/10/191937.htmlhttp://m.tkk7.com/zilong/comments/191937.htmlhttp://m.tkk7.com/zilong/archive/2008/04/10/191937.html#Feedback0http://m.tkk7.com/zilong/comments/commentRss/191937.htmlhttp://m.tkk7.com/zilong/services/trackbacks/191937.html杞嚜錛歨ttp://dev.csdn.net/article/68/68297.shtm
hibernate 涓夌鏌ヨ鏂瑰紡     閫夋嫨鑷?wangyihust 鐨?Blog 
 

錛堜竴錛塇QL

HQL錛?/span>Hibernate Qusery Language錛屽鏋滀綘宸茬粡鐔熸?zhèn)夊畠锛尀兗?xì)鍙戠幇瀹冭窡SQL闈炲父鐩稿儚銆備笉榪?/span>浣犱笉瑕佽琛ㄩ潰鐨勫亣璞¤糠鎯戯紝HQL鏄潰鍚戝璞$殑錛?/span>OO錛岀敤鐢熷懡鐨勭溂鍏夌湅寰呮瘡涓涓璞★紝浠栦滑鏄姝?/span>椴滄椿錛夈傚鏋滀綘瀵?/span>JAVA鍜?/span>SQL璇彞鏈変竴瀹氫簡瑙g殑璇濓紝閭d箞HQL瀵逛綘綆鐩存槗濡傚弽鎺岋紝浣犲畬鍏ㄥ彲浠ュ埄鐢ㄥ湪鍏濺涓婄殑鏃墮棿鎺屾彙瀹冦?/span>

浠ヤ笅浠庡嚑涓柟闈㈣繘琛屾參鎱㈡繁鍏ワ細(xì)

1
銆傚ぇ灝忎簺鏁忔劅
澶у鐭ラ亾SQL-92 Query鏄澶у皬鍐欎笉鏁忔劅鐨勶紝浣嗘槸鍦?/span>HQL錛堝墠闈㈡彁鍒板畠鏄?/span>OO鐨勶級涓瀵硅薄綾葷殑鍚嶇О鍜屽睘鎬х‘瀹炲ぇ灝忓啓鏁忔劅鐨勶紙絎﹀悎java緙栫▼璇硶錛夈?/span>

HQL 瀛愬彞鏈韓澶у皬鍐欐棤鍏籌紝浣嗘槸鍏朵腑鍑虹幇鐨勭被鍚嶅拰灞炴у悕蹇呴』娉ㄦ剰澶у皬鍐欏尯鍒?/span>
濡傦細(xì)sElect cat.name from Cat as cat鍜?/span>select cat.name from Cat as cat鏄竴鏍風(fēng)殑
浣嗘槸錛?/span>
sElect
cat.name from CAT as cat鍜?/span>select cat.name from Cat as cat紜疄涓嶄竴鏍風(fēng)殑銆?/span>

2
銆?/span>from璇彞
鏈綆鍗曠殑錛?/span>
from eg.Cat
瀹冨彧鏄畝鍗曠殑榪斿洖鎵鏈?/span>eg.Cat鐨勫疄渚?/span>,閫氬父鎴戜滑姝ゆ椂浼?xì)湄?fù)eg.Cat鍏朵釜鍒悕錛屽洜涓哄湪query鐨勫叾浣欓儴鍒嗗彲鑳戒細(xì)鐢ㄥ埌(鍙傜湅涓婅竟鍏充簬澶у皬鍐欐晱鎰熸椂鐨勪緥瀛愭儏褰?/span>)錛屽錛?/span>
from eg.Cat as cat 榪欓噷as鍙互鐪佺暐銆?/span>


涓婅竟鍙槸鍗曡〃鏌ヨ錛屽琛ㄧ殑鎯呭喌濡備笅鍐欐硶錛?/span>
from eg.Cat, eg.Dog
from eg.Cat as cat, eg.Dog as dog

3
銆?/span>join鐩稿叧
(inner) join
left (outer) join
right (outer) join
full join
HQL
鍚屾牱瀵?/span>SQL涓殑榪欎簺鐗規(guī)ф敮鎸?/span>
涓嬮潰鎻掓挱涓涓皬璇濋錛屽叧浜庝笂杈圭殑閭d簺鐗規(guī)э紝鎴戜竴鐩撮兘娌℃庝箞鐢紝浠婂ぉ鏃㈢劧璇村埌榪欓噷錛屽氨鎯蟲妸涓婅竟鐨勫嚑涓壒鎬х殑鐢ㄦ硶璇翠竴涓嬶紝涔熺畻瀵硅嚜宸辯殑涓涓ˉ鍏咃細(xì)


鍋囪鏈変袱涓〃錛氶儴闂ㄣ佸憳宸ワ紝涓嬮潰鍒椾婦涓浜涙暟鎹細(xì)
鍛樺伐(Employee)錛?/span>
 ID     Name    DepNo
 001   Jplateau   01
 002    Jony        01
 003   Camel      02

閮ㄩ棬(Department)錛?/span>
 ID  Name
 01  
鐮斿彂閮?/span>
 02   
钀ラ攢閮?/span>

鍦?/span>Hibernate涓垜浠搷綰電殑閮芥槸瀵硅薄錛屾墍浠ユ垜浠搷綰電殑鏄儴闂ㄧ被鍜屽憳宸?/span>


1).(inner) join
select employee.ID as id1,employee.Name as name1,

department.ID as id2,department.Name as name2  from Employee as employee

 join  Department as department on employee.DepNo=department.ID (娉ㄦ剰鍒版潯浠惰鍙ユ垜鐢?/span>on 娌℃湁鐢?/span>where)
閭d箞鎵ц緇撴灉鏄粈涔堝憿錛?/span>
id1 name1 id2 name2
++++++++++++++++++++++++++++++++++++++
001 Jplateau 01
鐮斿彂閮?/span>
002 Jony 01
鐮斿彂閮?/span>

2).left (outer) join
select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name
as name2 from Employee as employee left join Department as department on employee.DepNo=
department.ID
閭d箞鎵ц緇撴灉鍙堣鏄粈涔堝憿錛?/span>
id1 name1 id2 name2
++++++++++++++++++++++++++++++++++++++
001 Jplateau 01
鐮斿彂閮?/span>
002 Jony 01
鐮斿彂閮?/span>
003 Camel null null
{
灝辨槸璇存鏃舵垜瑕佸凡絎竴涓〃鐨勮褰曞灝戜負(fù)鍑嗭紝絎簩涓〃涓病鏈夌浉搴旂邯褰曠殑鏃跺欏~鍏?/span>null}
3). right (outer) join
select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name
as name2 from Employee as employee right join Department as department on employee.DepNo=
department.ID
閭d箞鎵ц緇撴灉鍙堣鏄粈涔堝憿錛?/span>
id1 name1 id2 name2
++++++++++++++++++++++++++++++++++++++
001 Jplateau 01
鐮斿彂閮?/span>
002 Jony 01
鐮斿彂閮?/span>
null null 02
钀ラ攢閮?/span>
{
灝辨槸璇存鏃舵垜瑕佸凡絎簩涓〃鐨勮褰曞灝戜負(fù)鍑嗭紝絎竴涓〃涓病鏈夌浉搴旂邯褰曠殑鏃跺欏~鍏?/span>null}

4
銆?/span>select璇彞
灝辨槸瑕佺‘瀹氫綘瑕佷粠鏌ヨ涓繑鍥炲摢浜涘璞℃垨鑰呭摢浜涘璞$殑灞炴с傚啓鍑犱釜渚嬪瓙鍚э細(xì)
select employee form Employee as employee
select employee form Employee as employee where employee.Name like 'J%'
select employee.Name form Employee as employee where employee.Name like 'J%'
select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name
as name2 from Employee as employee right join Department as department on employee.DepNo=
department.ID

select
elements(employee.Name) from Employee as employee
錛堜笉鏄庣櫧elements鍒板簳鏄仛浠涔堢敤鐨勶紵鏈涚粰浜庤鏄庯級
絳夌瓑


5銆傛暟瀛﹀嚱鏁?/span>
JDO
鐩墠濂藉儚榪樹笉鏀寔姝ょ被鐗規(guī)с?/span>
avg(...), sum(...), min(...), max(...)

count(*)

count(...), count(distinct ...), count(all...)

鍏剁敤娉曞拰SQL鍩烘湰鐩稿悓

select distinct employee.name from Employee as employee
select count(distinct employee.name),count(employee) from Employee as employee

6
銆?/span>polymorphism (鏆傛椂涓嶇煡閬撳浣曡В閲婏紵)
from com.test.Animal as animal
涓嶅厜寰楀埌鎵鏈?/span>Animal寰楀疄渚嬶紝鑰屼笖鍙互寰楀埌鎵鏈?/span>Animal鐨勫瓙綾伙紙濡傛灉鎴戜滑瀹氫箟浜嗕竴涓瓙綾?/span>Cat錛?/span>
涓涓瘮杈冩瀬绔殑渚嬪瓙
from java.lang.Object as o
鍙互寰楀埌鎵鏈夋寔涔呯被鐨勫疄渚?/span>

7
銆?/span>where璇彞
瀹氫箟鏌ヨ璇彞鐨勬潯浠訛紝涓懼嚑涓緥瀛愬惂錛?/span>
from Employee as employee where employee.Name='Jplateau'
from Employee as employee where employee.Name like 'J%'
from Employee as employee where employee.Name like '%u'
鍦?/span>where璇彞涓?#8220;=”涓嶅厜鍙互姣旇緝瀵硅薄鐨勫睘鎬э紝涔熷彲浠ユ瘮杈冨璞?/span>錛屽錛?/span>
select animal from com.test.Animal as animal where animal.name=dog

8
銆傝〃杈懼紡

鍦?/span>SQL璇彞涓ぇ閮ㄥ垎鐨勮〃杈懼紡鍦?/span>HQL涓兘鍙互浣跨敤錛?/span>
mathematical operators +, -, *, /

binary comparison operators =, >=, <=, <>, !=, like

logical operations and, or, not

string concatenation ||

SQL scalar functions like upper() and lower()

Parentheses ( ) indicate grouping

in, between, is null

JDBC IN parameters ?

named parameters :name, :start_date, :x1
錛堣繖縐嶅簲璇ユ槸鍙︿竴縐?/span>"?"鐨勫彉閫氳В鍐蟲柟娉曪級

SQL literals 'foo', 69, '1970-01-01 10:00:01.0'

Java public static final constants eg.Color.TABBY

鍏朵粬涓嶅繀瑙i噴浜嗭紝鍦ㄨ繖閲屾垜鍙兂瀵規(guī)煡璇腑鐨勫弬鏁伴棶棰樿鏄庝竴涓嬶細(xì)
澶у鐭ラ亾鍦?/span>SQL涓繘琛屼紶閫掑弬鏁拌繘琛屾煡璇㈢殑鏃跺欙紝鎴戜滑閫氬父鐢?/span>PreparedStatement錛屽湪璇彞涓啓涓澶у爢鐨?#8220;錛?#8221;錛?/span>
鍦?/span>hql涓篃鍙互鐢ㄨ繖縐嶆柟娉?/span>錛屽錛?/span>
List mates = sess.find(
"select employee.name from Employee as employee " +
"where employee.Name=? ",
name,
Hibernate.STRING
);
(
璇存槑錛氫笂闈㈠埄鐢?/span>Session閲岀殑find鏂規(guī)硶錛屽湪hibernate鐨?/span>api Session涓噸杞戒簡寰堝find鏂規(guī)硶錛屽畠鍙互婊¤凍浣犲縐嶅艦寮忕殑鏌ヨ)
涓婅竟鏄竴涓弬鏁扮殑鎯呭艦錛岃繖縐嶆儏鍐典笅绱ф帴鐫寮曞叆鍙傛暟鍜屽畾涔夊弬鏁扮殑綾誨瀷錛屽綋涓哄涓弬鏁幫紝璋冪敤鍙︿竴涓?/span>find鏂規(guī)硶錛屽畠鐨勫悗涓や釜
鍙傛暟閮芥槸鏁扮粍鐨勫艦寮忋?/span>

榪樻湁鍙﹀涓縐嶆柟娉曟潵瑙e喅涓婅竟鐨勯棶棰橈紝JDO涔熸湁榪欐牱鐨勬柟娉曪紝涓嶈繃鍜?/span>hibernate鐨勮〃鐜板艦寮忎笂鏈夊樊鍒紝浣嗕粬浠袱涓瀛愰噷鍗存槸
涓鏍風(fēng)殑錛屽錛?/span>
Query q = sess.createQuery("select employee.name from Employee as employee where employee.Name=:name");
q.setString("name", "Jplateau");
//
褰撴湁澶氫釜鍙傛暟鐨勬椂鍊欏湪姝ら愪竴瀹氫箟
Iterator employees = q.iterate();

9
銆?/span>order 璇彞
鍜?/span>sql璇彞娌′粈涔堝樊鍒紝濡傦細(xì)
select employee.name from Employee as employee where employee.Name like 'J%' order by employee.ID desc (
鎴栬?/span>asc)

10
銆?/span>group by 璇彞
鍚屾牱鍜?/span>sql璇彞娌′粈涔堝樊鍒紝濡傦細(xì)

select employee.name,employee.DepNo from Employee as employee group by employee.DepNo

select foo.id, avg( elements(foo.names) ), max( indices(foo.names) ) from eg.Foo foo group by foo.id
{Note: You may use the elements and indices constructs inside a select clause, even on databases with no subselects.}
璋佸府鎴戣В閲婁竴涓嬩笂杈逛袱鍙ワ紝璋㈣繃錛?/span>

11
銆傚瓙鏌ヨ
hibernate
鍚屾牱鏀寔瀛愭煡璇紝鍐欏嚑涓緥瀛愶細(xì)

from eg.Cat as fatcat where fatcat.weight > ( select avg(cat.weight) from eg.DomesticCat cat )

錛堜簩錛夋潯浠舵煡璇riteria  Query

銆傛暟瀛﹀嚱鏁?/span>
JDO
鐩墠濂藉儚榪樹笉鏀寔姝ょ被鐗規(guī)с?/span>
avg(...), sum(...), min(...), max(...)

count(*)

count(...), count(distinct ...), count(all...)

鍏剁敤娉曞拰SQL鍩烘湰鐩稿悓

select distinct employee.name from Employee as employee
select count(distinct employee.name),count(employee) from Employee as employee

6
銆?/span>polymorphism (鏆傛椂涓嶇煡閬撳浣曡В閲婏紵)
from com.test.Animal as animal
涓嶅厜寰楀埌鎵鏈?/span>Animal寰楀疄渚嬶紝鑰屼笖鍙互寰楀埌鎵鏈?/span>Animal鐨勫瓙綾伙紙濡傛灉鎴戜滑瀹氫箟浜嗕竴涓瓙綾?/span>Cat錛?/span>
涓涓瘮杈冩瀬绔殑渚嬪瓙
from java.lang.Object as o
鍙互寰楀埌鎵鏈夋寔涔呯被鐨勫疄渚?/span>

7
銆?/span>where璇彞
瀹氫箟鏌ヨ璇彞鐨勬潯浠訛紝涓懼嚑涓緥瀛愬惂錛?/span>
from Employee as employee where employee.Name='Jplateau'
from Employee as employee where employee.Name like 'J%'
from Employee as employee where employee.Name like '%u'
鍦?/span>where璇彞涓?#8220;=”涓嶅厜鍙互姣旇緝瀵硅薄鐨勫睘鎬э紝涔熷彲浠ユ瘮杈冨璞?/span>錛屽錛?/span>
select animal from com.test.Animal as animal where animal.name=dog

8
銆傝〃杈懼紡

鍦?/span>SQL璇彞涓ぇ閮ㄥ垎鐨勮〃杈懼紡鍦?/span>HQL涓兘鍙互浣跨敤錛?/span>
mathematical operators +, -, *, /

binary comparison operators =, >=, <=, <>, !=, like

logical operations and, or, not

string concatenation ||

SQL scalar functions like upper() and lower()

Parentheses ( ) indicate grouping

in, between, is null

JDBC IN parameters ?

named parameters :name, :start_date, :x1
錛堣繖縐嶅簲璇ユ槸鍙︿竴縐?/span>"?"鐨勫彉閫氳В鍐蟲柟娉曪級

SQL literals 'foo', 69, '1970-01-01 10:00:01.0'

Java public static final constants eg.Color.TABBY

鍏朵粬涓嶅繀瑙i噴浜嗭紝鍦ㄨ繖閲屾垜鍙兂瀵規(guī)煡璇腑鐨勫弬鏁伴棶棰樿鏄庝竴涓嬶細(xì)
澶у鐭ラ亾鍦?/span>SQL涓繘琛屼紶閫掑弬鏁拌繘琛屾煡璇㈢殑鏃跺欙紝鎴戜滑閫氬父鐢?/span>PreparedStatement錛屽湪璇彞涓啓涓澶у爢鐨?#8220;錛?#8221;錛?/span>
鍦?/span>hql涓篃鍙互鐢ㄨ繖縐嶆柟娉?/span>錛屽錛?/span>
List mates = sess.find(
"select employee.name from Employee as employee " +
"where employee.Name=? ",
name,
Hibernate.STRING
);
(
璇存槑錛氫笂闈㈠埄鐢?/span>Session閲岀殑find鏂規(guī)硶錛屽湪hibernate鐨?/span>api Session涓噸杞戒簡寰堝find鏂規(guī)硶錛屽畠鍙互婊¤凍浣犲縐嶅艦寮忕殑鏌ヨ)
涓婅竟鏄竴涓弬鏁扮殑鎯呭艦錛岃繖縐嶆儏鍐典笅绱ф帴鐫寮曞叆鍙傛暟鍜屽畾涔夊弬鏁扮殑綾誨瀷錛屽綋涓哄涓弬鏁幫紝璋冪敤鍙︿竴涓?/span>find鏂規(guī)硶錛屽畠鐨勫悗涓や釜
鍙傛暟閮芥槸鏁扮粍鐨勫艦寮忋?/span>

榪樻湁鍙﹀涓縐嶆柟娉曟潵瑙e喅涓婅竟鐨勯棶棰橈紝JDO涔熸湁榪欐牱鐨勬柟娉曪紝涓嶈繃鍜?/span>hibernate鐨勮〃鐜板艦寮忎笂鏈夊樊鍒紝浣嗕粬浠袱涓瀛愰噷鍗存槸
涓鏍風(fēng)殑錛屽錛?/span>
Query q = sess.createQuery("select employee.name from Employee as employee where employee.Name=:name");
q.setString("name", "Jplateau");
//
褰撴湁澶氫釜鍙傛暟鐨勬椂鍊欏湪姝ら愪竴瀹氫箟
Iterator employees = q.iterate();

9
銆?/span>order 璇彞
鍜?/span>sql璇彞娌′粈涔堝樊鍒紝濡傦細(xì)
select employee.name from Employee as employee where employee.Name like 'J%' order by employee.ID desc (
鎴栬?/span>asc)

10
銆?/span>group by 璇彞
鍚屾牱鍜?/span>sql璇彞娌′粈涔堝樊鍒紝濡傦細(xì)

select employee.name,employee.DepNo from Employee as employee group by employee.DepNo

select foo.id, avg( elements(foo.names) ), max( indices(foo.names) ) from eg.Foo foo group by foo.id
{Note: You may use the elements and indices constructs inside a select clause, even on databases with no subselects.}
璋佸府鎴戣В閲婁竴涓嬩笂杈逛袱鍙ワ紝璋㈣繃錛?/span>

11
銆傚瓙鏌ヨ
hibernate
鍚屾牱鏀寔瀛愭煡璇紝鍐欏嚑涓緥瀛愶細(xì)

from eg.Cat as fatcat where fatcat.weight > ( select avg(cat.weight) from eg.DomesticCat cat )

錛堜簩錛夋潯浠舵煡璇riteria  Query

 Criteria criteria = osession.createCriteria(Owner.class);
   criteria.add(Expression.eq("age", new Integer(100)));
   criteria.setFirstResult(2);                   //浠庤繑鍥炵粨鏋滅殑絎簩鏉¤褰曞紑濮嬬殑5鏉¤褰?br />    criteria.setMaxResults(5);
   List lc=criteria.list();
   System.out.println("鏉′歡鏌ヨ");
   System.out.println(lc.size());

錛堜笁錛夊師鐢烻QL璇彞鏌ヨ



闃夸紵 2008-04-10 17:41 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 欧洲黑大粗无码免费| 99在线视频免费| 亚洲成年轻人电影网站www| 黄在线观看www免费看| 精品国产亚洲一区二区三区在线观看| 久久精品国产亚洲7777| 99久久久国产精品免费无卡顿| 美女免费精品高清毛片在线视| 水蜜桃亚洲一二三四在线| 曰皮全部过程视频免费国产30分钟| 中国一级毛片视频免费看| 99热亚洲色精品国产88| 国产亚洲一区二区精品| 四色在线精品免费观看| 无码人妻AV免费一区二区三区| 人人狠狠综合久久亚洲| 亚洲黄色网址在线观看| AV在线播放日韩亚洲欧| 最近高清国语中文在线观看免费| 四虎国产精品免费永久在线| 亚洲av无一区二区三区| 亚洲最大在线视频| 国产亚洲美女精品久久久久狼| 国产一级做a爱免费视频| 黄色网址免费观看| 国产午夜无码精品免费看| 美女羞羞免费视频网站| 天堂亚洲国产中文在线| 亚洲综合激情九月婷婷| 亚洲精品无码AV人在线播放 | 无码中文在线二区免费| 两个人看的www免费| 特级做a爰片毛片免费看| 亚洲人成网站在线播放2019| 亚洲成a人片在线观看中文app| 亚洲色偷拍另类无码专区| 一本色道久久88综合亚洲精品高清| 久久久久国色AV免费观看性色| 久久精品中文字幕免费| 中文字幕在线免费观看视频| 美女羞羞免费视频网站|