锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲高清乱码午夜电影网,亚洲一区二区三区AV无码,亚洲黄色免费网址http://www.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://www.tkk7.com/zilong/archive/2008/04/10/191937.html闃夸紵闃夸紵Thu, 10 Apr 2008 09:41:00 GMThttp://www.tkk7.com/zilong/archive/2008/04/10/191937.htmlhttp://www.tkk7.com/zilong/comments/191937.htmlhttp://www.tkk7.com/zilong/archive/2008/04/10/191937.html#Feedback0http://www.tkk7.com/zilong/comments/commentRss/191937.htmlhttp://www.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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产一精品一aⅴ一免费| AV无码免费永久在线观看| 国产又粗又长又硬免费视频| 亚洲人配人种jizz| 四虎永久在线精品免费网址| 国产成人亚洲精品| 成人网站免费观看| 亚洲AV无码之国产精品| 国产片免费在线观看| 一级白嫩美女毛片免费| 亚洲精品和日本精品| 国产精品99爱免费视频| 国产精品亚洲аv无码播放| 久久精品成人免费网站| 色婷婷亚洲十月十月色天| 在线观看免费中文视频| 亚洲午夜精品在线| 天天干在线免费视频| 猫咪免费人成网站在线观看入口 | 免费播放一区二区三区| 亚洲日韩中文字幕| 国产又大又粗又长免费视频| 四虎必出精品亚洲高清| 国产成人免费片在线观看| 一级毛片试看60分钟免费播放| 中文字幕不卡亚洲 | 亚洲国产小视频精品久久久三级| 一级毛片成人免费看a| 亚洲av永久无码精品国产精品| 中国人xxxxx69免费视频| 亚洲精品蜜夜内射| 久久精品夜色噜噜亚洲A∨| 久久国产精品2020免费m3u8 | 免费a级黄色毛片| 在线观看黄片免费入口不卡| 亚洲毛片一级带毛片基地| 在线免费观看一级片| 国产在线观看免费av站| 国产精品亚洲精品观看不卡| 又粗又大又硬又爽的免费视频| 两个人看www免费视频|