ComplexContent鐨勭敤娉曪細
<?xml version="1.0" encoding="UTF-8"?>
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
01 | <? xml version = "1.0" encoding = "UTF-8" ?> |
02 | <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd"> |
03 | < mapping > |
04 | < class name = "com.hoo.entity.Account" auto-complete = "true" > |
05 | < map-to xml = "Account" /> |
06 | |
07 | < field name = "id" type = "integer" > |
08 | < bind-xml name = "id" node = "attribute" /> |
09 | </ field > |
10 | |
11 | < field name = "name" type = "string" > |
12 | < bind-xml name = "name" node = "element" /> |
13 | </ field > |
14 | |
15 | < field name = "email" type = "string" > |
16 | < bind-xml name = "email" node = "element" /> |
17 | </ field > |
18 | |
19 | < field name = "address" type = "string" > |
20 | < bind-xml name = "address" node = "element" /> |
21 | </ field > |
22 | |
23 | < field name = "birthday" type = "com.hoo.entity.Birthday" > |
24 | < bind-xml name = "鐢熸棩" node = "element" /> |
25 | </ field > |
26 | </ class > |
27 | |
28 | < class name = "com.hoo.entity.Birthday" > |
29 | < map-to xml = "birthday" /> |
30 | |
31 | < field name = "birthday" type = "string" > |
32 | < bind-xml name = "birthday" node = "attribute" /> |
33 | </ field > |
34 | </ class > |
35 | </ mapping > |
anyURI 鏁版嵁綾誨瀷鐢ㄤ簬瑙勫畾 URI銆?/p>
涓嬮潰鏄竴涓叧浜庢煇涓?scheme 涓?anyURI 澹版槑鐨勪緥瀛愶細
<xs:attribute name="src" type="xs:anyURI"/>
鏂囨。涓殑鍏冪礌鐪嬩笂鍘誨簲璇ョ被浼艱繖鏍鳳細
<pic src="http://www.w3school.com.cn/images/smiley.gif" />
XML Schema 鏄熀浜?XML 鐨?DTD 鏇夸唬鑰呫?/strong>
XML Schema 鎻忚堪 XML 鏂囨。鐨勭粨鏋勩?/strong>
XML Schema 璇█涔熺О浣?XML Schema 瀹氫箟錛圶ML Schema Definition錛孹SD錛夈?/strong>
鍦ㄦ鏁欑▼涓紝浣犲皢瀛︿範濡備綍鍦ㄥ簲鐢ㄧ▼搴忎腑璇誨彇鍜屽垱寤?XML Schema 璇█錛孹ML Schema 涓轟綍姣?DTD 鏇村姞寮哄ぇ錛屼互鍙婂浣曞湪鎮ㄧ殑搴旂敤紼嬪簭涓嬌鐢?XML Schema銆?/strong>
XML涓殑Schema鍏冪礌璇﹁В錛?/pre>http://www.w3school.com.cn/schema/schema_schema.asp
]]>
<xs:element name="xxx" type="yyy"/>
瀹氫箟灞炴?/strong>
HQL(Hibernate Query Language):鏄潰鍚戝璞$殑鏌ヨ璇彞,瀹冪殑璇硶鍜孲QL璇彞鏈変簺鐩稿儚,鍦ㄨ繍琛屾椂鎵嶅緱浠ヨВ鏋?HQL騫朵笉鍍廠QL閭f牱鏄暟鎹搷浣滆璦,瀹冪敤鏉ュ彇寰楀璞?鑰屼笉鏄繘琛寀pdate,delete鍜宨nsert鎿嶄綔. HQL 鏄竴闂ㄥ澶у皬鍐欎笉鏁忔劅鐨勭殑璇█,鎵浠eLect涓嶴ELECT鍜宻ELeCT鏄浉鍚岀殑.
----------------
鐜板湪鏈夊洓寮犺〃:student,team,course,student_course.
student 琛ㄤ腑鏈変簲涓瓧孌?鍒嗗埆鏄?id,name,cardId,age,team_id;
team 琛ㄤ腑鏈変袱涓瓧孌?id,teamname;
course 琛ㄤ腑鏈塱d,name;
student_course 琛ㄤ腑鏈塻tu_id,course_id; 淇濆瓨澶氬澶氱殑鍏崇郴琛?br />----------------
Student 鏄竴涓璞?student 鏄暟鎹簱涓殑涓涓〃.
鏌ヨ鎵鏈夌殑Student瀵硅薄鏃?鏈綆鍗曠殑HQL璇彞鏄? from Student,涔熷彲浠ュ啓鎴?select s from Student (as)s. 娉?榪欑殑as鍙互鐪佺暐
1:綆鍗曠殑鏌ヨ閬嶅巻瀵硅薄:
閬嶅巻Student
Query query=session.createQuery("form Student"); //娉? 濡傛灉Student瀵硅薄涓嶆槸鍞竴鐨?閭d箞闇瑕佸啓涓婂寘鍚?濡? from test.Student test涓哄寘鍚?
List list=query.list();
for(int i=0;i<list.size();i++)
{
Student stu=(Student)list.get(i);
System.out.println(stu.getName());
}
娉ㄦ剰: 濡傛灉鎵цHQL璇彞"from Student,Course",騫朵笉鏃跺崟鍗曡繑鍥炰袱涓璞?鑰屾槸榪斿洖涓や釜瀵硅薄鐨勭瑳鍗″皵縐?榪欑被浼糞QL璇彞涓瓧孌電殑鍏ㄥ榪炴帴.瀹為檯鐨勫簲鐢ㄤ腑,"from Student,Course"榪欑璇彞鍑犱箮鏄笉鍥炲嚭鐜扮殑.
2:灞炴ф煡璇?
----鍗曚釜灞炴ф煡璇?
Query query=session.createQuery("select s.name form Student s");
List list=query.list();
for(int i=0;i<list.size();i++)
{
String name=(String)list.get(i);
System.out.println(name);
}
----澶氫釜灞炴ф煡璇?
Query query=session.createQuery("select s.name,s.age form Student s");
List list=query.list();
for(int i=0;i<list.size();i++)
{
Object obj[]=(Object[])list.get(i); //鍙栧緱list涓殑絎琲涓璞?br />System.out.println(obj[0]+"鐨勫勾榫勪負: "+obj[1]);
}
3:瀹炰緥鍖栨煡璇?
瀹炰緥鍖栨煡璇㈢粨鏋滃彲浠ヨ鏄灞炴ф煡璇㈢殑涓閲嶆敼榪?鍦ㄤ嬌鐢ㄥ睘鎬ф煡璇㈡椂鐢變簬浣跨敤瀵硅薄鏁扮粍,鎿嶄綔鍜岀悊瑙d笉澶柟渚?濡傛灉灝嗕互涓狾bject[]涓殑鎴愬憳灝佽鎴愪竴涓璞″氨鏂逛究澶氫簡.
Query query=session.createQuery("select new Student(s.name,s.age) form Student s");
List list=query.list();
for(int i=0;i<list.size();i++)
{
Student stu=(Student)list.get(i);
System.out.println(stu.getName());
}
娉?榪愯榪欎釜紼嬪簭鐨勬椂鍊?闇瑕佷竴涓猲ew Student(s.name,s.age)鏋勯犲嚱鏁?鍦⊿tudent.java涓紪鍐欒繖涓瀯閫犲嚱鏁?
public Student(String name,int age)
{
this.name=name;
this.age=age;
}
4:鏌ヨ閾炬帴:
涓嶴QL鏌ヨ涓鏍?HQL涔熸敮鎸佽繛鎺ユ煡璇?濡傚唴榪炴帴,澶栬繛鎺ュ拰浜ゅ弶榪炴帴.鏀寔鐨勯摼鎺ョ被鍨嬫槸浠嶢NSI SQL涓熼壌鏉ョ殑.
1: inner jion (鍐呰繛鎺?
2: left outer join (宸﹀榪炴帴)
3: right outer join(鍙沖榪炴帴)
4: full join(鍏ㄨ繛鎺?-涓嶅父鐢?
inner jion 鍙互綆鍐欎負join.
姝e父鎯呭喌涓嬪繀欏昏寤哄叧鑱斻?/p>
select a.id, b.id from A a, B b where a.id = b.id;
涓婇潰姣忔潯璁板綍榪斿洖鐨勬槸涓涓狾bject[]瀵硅薄銆?br />浣犱篃鍙互鎶婄粨鏋滈噸鏂板皝瑁呬竴涓嬨?br />String hql = "select a.id, b.id from A a, B b where a.id = b.id";
List result = getHibernateTemplate().find(hql);
if (result.size() > 0) {
for (int i = 0; i < result.size(); i++){
Object[] obj = (Object[]) result.get(i);
//榪欓噷灝卞彲浠ラ噸鏂板皝瑁呮暟鎹?br />}
}
5:緇熻鍑芥暟鏌ヨ:
1: count() 緇熻璁板綍鐨勬潯鏁?br />2: min() 姹傛渶灝忓?br />3: max() 姹傛渶澶у?br />4: sum() 姹傚拰
4: avg() 姹傚鉤鍧囧?/p>
//鍙栧緱Student鐨勬暟閲?br />Query query=session.createQuery("select count(*) from Student")
//avg()鍙栧緱Student騫沖潎騫撮緞
Query query=session.createQuery("select avg(s.age) from Student as s")
//upper()鏂規硶灝嗗瓧絎︿覆杞負澶у啓
Query query=session.createQuery("select upper(s.name) from Student as s")
//鍘婚櫎閲嶅琛宒istinct
Query query=session.createQuery("select distinct s.age from Student as s")
6:瀛愭煡璇?
all 琛ㄧず鎵鏈夎褰?br />any 渚挎槸鎵鏈夎褰曚腑鐨勪換鎰忎竴鏉?br />somy 涓巃ny鐢ㄦ硶涓鏍?br />in 絳変環浜巃ny
exists 琛ㄧず瀛愭煡璇㈣嚦灝戣榪斿洖涓鏉℃暟鎹?
all:
from Team t where 22<all(select s.age from Student s)
from Team t where all(select s.age from t.student s)>22
7:淇敼
update()
Student stu=(Student)session.get(Student.class,"id"); //鏍規嵁id 寰楀埌stu瀵硅薄
stu.setName("123");
session.update(stu);
8:鍒犻櫎:
delete()
Student stu=(Student)session.get(Student.class,"id"); //鏍規嵁id 寰楀埌stu瀵硅薄
session.delete(stu);