DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS進階教程 >> Hibernate配置文件中映射元素詳解
Hibernate配置文件中映射元素詳解
編輯:CSS進階教程     
  本文中將講述Hibernate的基本配置及配置文件的應用,這對於正確熟練使用Hibernate是相當關鍵的。

  配置文件中映射元素詳解

  對象關系的映射是用一個XML文檔來說明的。映射文檔可以使用工具來生成,如XDoclet,Middlegen和AndroMDA等。下面從一個映射的例子開始講解映射元素,映射文件的代碼如下。

<?xml version="1.0"?>
<!--
所有的XML映射文件都需要定義如下所示的DOCTYPE。
Hibernate會先在它的類路徑(classptah)中搜索DTD文件。

-->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!--
hibernate-mapping有幾個可選的屬性:
schema屬性指明了這個映射的表所在的schema名稱。
default-cascade屬性指定了默認的級聯風格 可取值有 none、save、update。
auto-import屬性默認讓我們在查詢語言中可以使用非全限定名的類名 可取值有 true、false。
package屬性指定一個包前綴。
-->

<hibernate-mapping schema="schemaName" default-cascade="none"
auto-import="true" package="test">

<!--用class元素來定義一個持久化類 -->
<class name="People" table="person">
<!-- id元素定義了屬性到數據庫表主鍵字段的映射。-->
<id name="id">
<!-- 用來為該持久化類的實例生成唯一的標識 -->
<generator class="native"/>
</id>
<!-- discriminator識別器 是一種定義繼承關系的映射方法-->

<discriminator column="subclass" type="character"/>
<!-- property元素為類聲明了一個持久化的,JavaBean風格的屬性-->
<property name="name" type="string">
<column name="name" length="64" not-null="true" />
</property>

<property name="sex"
not-null="true"
update="false"/>

<!--多對一映射關系-->
<many-to-one name="friend"
column="friend_id"
update="false"/>

<!--設置關聯關系-->

<set name="friends" inverse="true" order-by="id">
<key column="friend_id"/>
<!—一對多映射-->
<one-to-many class="Cat"/>
</set>
</class>
</hibernate-mapping>
  組件應用的方法

  組件有兩種類型,即組件(component)和動態組件(dynamic-component)。在配置文件中,component元素為子對象的元素與父類對應表的字段建立起映射關系。然後組件可以聲明它們自己的屬性、組件或者集合。component元素的定義如下所示:

<component name="propertyName" class="className" insert="true|false"
upate="true|false" access="field|property|ClassName">

<property ...../>
<many-to-one .... />
........
</component>
  在這段代碼中,name是指屬性名,class是類的名字,insert指的是被映射的字段是否出現在SQL的INSERT語句中,upate指出被映射的字段是否出現在SQL的UPDATE語句中,access指出訪問屬性的策略。

1 2 下一頁

  Hibernate映射類型

  在對象/關系映射文件中,Hibernate采用映射類型作為Java類型和SQL類型的橋梁。Hibernate映射類型分為2種:內置映射類型和自定義映射類型。

  1、內置映射類型

  Hibernate對所有的Java原生類型、常用的Java類型如String、Date等都定義了內置的映射類型。表2列出了Hibernate映射類型、對應的Java類型以及對應的標准SQL類型。

  表2 Hibernate內置映射類型
Hibernate映射類型Java類型標准SQL類型大小integer/intjava.lang.Integer/intINTEGER4字節longjava.lang.Long/longBIGINT8字節shortjava.lang.Short/shortSMALLINT2字節bytejava.lang.Byte/byteTINYINT1字節floatjava.lang.Float/floatFLOAT4字節doublejava.lang.Double/doubleDOUBLE8字節big_decimaljava.math.BigDecimalNUMERIC  characterjava.lang.Character/java.lang.String/charCHAR(1)定長字符stringjava.lang.StringVARCHAR變長字符boolean/ yes_no/true_falsejava.lang.Boolean/BooleanBIT布爾類型datejava.util.Date/java.sql.DateDATE日期timestampjava.util.Date/java.util.TimestampTIMESTAMP日期calendarjava.util.CalendarTIMESTAMP日期calendar_datejava.util.CalendarDATE日期binarybyte[]BLOB
BLOBtextjava.lang.StringTEXTCLOBserializable實現java.io.Serializablej接口的任意Java類BLOBBLOBclobjava.sql.ClobCLOBCLOBblobjava.sql.BlobBLOBBLOBclassjava.lang.ClassVARCHAR定長字符localejava.util.LocaleVARCHAR定長字符timezonejava.util.TimeZoneVARCHAR定長字符currencyjava.util.CurrencyVARCHAR定長字符
  2、自定義映射類型

  Hibernate提供了自定義映射類型接口,允許用戶以編程的方式創建自定義的映射類型。用戶自定義的映射類型需要實現net.sf.hibernate.UserType或net.sf.hibernate.CompositeUserType接口。具體的創建自定義映射類型的方法請參考hibernate官方文檔或相關資料,這裡不再詳細介紹。 上一頁 1 2

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved