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。
下面是一個關于某個 scheme 中 anyURI 聲明的例子:
<xs:attribute name="src" type="xs:anyURI"/>
文檔中的元素看上去應該類似這樣:
<pic src="http://www.w3school.com.cn/images/smiley.gif" />
XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 描述 XML 文檔的結構。
XML Schema 語言也稱作 XML Schema 定義(XML Schema Definition,XSD)。
在此教程中,你將學習如何在應用程序中讀取和創建 XML Schema 語言,XML Schema 為何比 DTD 更加強大,以及如何在您的應用程序中使用 XML Schema。
XML中的Schema元素詳解:
http://www.w3school.com.cn/schema/schema_schema.aspXML Schema:
<xs:element name="xxx" type="yyy"/>
定義屬性
HQL(Hibernate Query Language):是面向對象的查詢語句,它的語法和SQL語句有些相像,在運行時才得以解析.HQL并不像SQL那樣是數據操作語言,它用來取得對象,而不是進行update,delete和insert操作. HQL 是一門對大小寫不敏感的的語言,所以SeLect與SELECT和sELeCT是相同的.
student 表中有五個字段,分別是:id,name,cardId,age,team_id; Student 是一個對象,student 是數據庫中的一個表. 查詢所有的Student對象時,最簡單的HQL語句是: from Student,也可以寫成 select s from Student (as)s. 注:這的as可以省略
遍歷Student Query query=session.createQuery("form Student"); //注: 如果Student對象不是唯一的,那么需要寫上包名,如: from test.Student test為包名. 注意: 如果執行HQL語句"from Student,Course",并不時單單返回兩個對象,而是返回兩個對象的笛卡爾積,這類似SQL語句中字段的全外連接.實際的應用中,"from Student,Course"這種語句幾乎是不回出現的.
----單個屬性查詢: ----多個屬性查詢: Query query=session.createQuery("select s.name,s.age form Student s");
實例化查詢結果可以說是對屬性查詢的一重改進.在使用屬性查詢時由于使用對象數組,操作和理解不太方便,如果將以個Object[]中的成員封裝成一個對象就方便多了. Query query=session.createQuery("select new Student(s.name,s.age) form Student s"); 注:運行這個程序的時候,需要一個new Student(s.name,s.age)構造函數.在Student.java中編寫這個構造函數.
4:查詢鏈接: 與SQL查詢一樣,HQL也支持連接查詢,如內連接,外連接和交叉連接.支持的鏈接類型是從ANSI SQL中借鑒來的. 1: inner jion (內連接) inner jion 可以簡寫為join. 正常情況下必須要建關聯。
1: count() 統計記錄的條數 //取得Student的數量 //avg()取得Student平均年齡 //upper()方法將字符串轉為大寫 //去除重復行distinct
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
update() Student stu=(Student)session.get(Student.class,"id"); //根據id 得到stu對象
delete() Student stu=(Student)session.get(Student.class,"id"); //根據id 得到stu對象 |