2010年10月27日 星期三

Hibernate 教學 - 值型別的 Component (二)

上一篇所說到的 Component 中,我們是以一個一對多的例子來說明

最重要的觀念就是針對 Value Type 實作出一個類別,以及在組態檔中的設定,先來看看之前組態檔的寫法

用上一篇的 Employee 組態檔來說明

<set name="photos" table="photoOne">
    <key column="employee_fk" />
    <composite-element class="MapPOJO.PhotoOne">
        <property name="photoFileName" column="photo_file_name"
                                       not-null="true" />
        <property name="width" column="width" not-null="true" />
        <property name="height" column="height" not-null="true" />
    </composite-element>
</set>

以上是一對多中 再一的這一方(Empolyee) 在指定 Employee 的 photos 屬性時的寫法

用 <composite-element> 帶出實做值型別的類別並以 <property> 子標籤指定該類別所需之屬性

2010年10月26日 星期二

Hibernate 教學 - Eclipse 環境配置

以 Eclipse 開發 Hibernate 時,首先先下載 Hibernate 的文件

此為下載的網址 http://sourceforge.net/projects/hibernate/files/hibernate3/

選一個最新的下載即可,而我以下示範是以 3.5.2 ,下載完成並解下縮後

在根目錄下的  hibernate3.jar 當然是必備的,還有 lib 資料夾下的類別庫

但是基本上其實只需要 lib 下的 required 資料夾裡的類別庫即可

接下來啟動 Eclipse 之後先行建立一個 Java WEB 的專案 testHibernate,完成後

如下將 Hibernate 類別庫加入到 Eclipse 的環境中

Window > Preferences > New > 輸入一個新的名稱 (ex: Hibernate-3.5.2)


之後點擊剛剛新建的 Libraries > Add JARs > 把 Hibernate3.jar 和 required 裡的東西加入

最後需要將我們剛剛建立的 Libraries 加入到 testHibernate 專案中

在左邊欄點擊 testHibernate 右鍵 > properties > Add Library > User Library > 選取 Hibernate-3.5.2 


最後請看下一篇

Hibernate 教學 - Hibernate 基礎簡介 http://programer-learn.blogspot.com/2011/02/hibernate.html

2010年10月23日 星期六

Java 程式教學 - System

關於 System 類別的是屬於 java.lang.System 下,先介紹它最重要的 static 變數

1.err    
   System.err 會回傳一個 PrintStream 物件
   主要是用來顯示出錯誤訊息例如提醒使用者該輸入的參數

2.in     
   System.in 會回傳一個 InputStream 物件
   此 InputStream 已經開啟(open),直接可以應用在輸入資料上
   例如: java.util.Scanner sc = new java.util.Scanner(System.in);

3.out   
   System.out 會回傳一個 OutputStream 物件
   這就是大家最常拿來用的輸出語法,System.out.println("");

2010年10月16日 星期六

Struts 教學 - 國際化處理

Struts 對於WEB有支援國際化的應用

通常在台灣地區 瀏覽器是設定為 zn_TW 繁體中文的

以 IE 為例可以選擇工具列上的 工具 > 網際網路選項 > 語言

在這底下可以設定你的偏好設定,可以點選新增來增加其他語系

並將預設的語言移動最上面即可

接下來看一下 Struts 對於國際化的支援

首先如果我們要做到支援繁體中文(zn_TW)和英文(en_US)的WEB網頁

第一步必須先定義這兩個的資源文件

以 Netbeans 在一個有選擇Struts framework 的 WEB App 為例

2010年10月7日 星期四

Hibernate 教學 - 一對多 (Value Type)

介紹一下有關值型別(Value Type) 的一對多關係映射

在之前已經討論過值型別與個體型別的差異了

以本文為例舉個例子,在一對多當中如果多的這一方並不需要一個實際的類別

例如說該資料只是一個字串,但這筆資料必須存入到資料庫當中

這時候就可以以一對多的(Value Type) 的關係映射來實現本案例

我們以一個人(Person)有多個信箱 email 來舉例

顯然的人(Person)是一,而 email 是多,而且 email 僅以字串格式儲存

來看一下 Person.java

2010年10月6日 星期三

Struts 教學 - DispatchAction 運用

在 Struts 處理請求過程中,處理請求的過程通常都是透過組態檔(struts-config.xml)

找到所設定的路徑並分派到所指定的 Action 處理。

如果你有一連串或是較相關的動作須執行,假如有四個動作

那你就可能必須分別撰寫四個 Action 來處理不同的動作....是有點麻煩

不過如果透過 DispatchAction 的話就會變的更加容易

首先運作原理是透過繼承 Action 的子類別 DispatchAction


緊接著你不必覆寫 execute() 這個 method

你可以透過請求參數決定你要的實際操作方法

簡單說如果你有個動作需要登入,那你可以在 form 標籤的 action 這樣寫

2010年10月2日 星期六

Hibernate 教學 - Entity Type 與 Value Type

之前文章出現過很多 Entity Type,例如 一對多 (Entity Type) ....等

Entity Type 可以看成是"個體型別"的意思,Value Type 則是"值型別"

區分他們的方法很簡單,以之前一對多....等 的例子來看

Room 和 Student 類別都有一個屬性 id,透過這個 id 我們可以識別不同的物件

在資料庫的領域裡,如果要識別不同的資料可以透過主鍵


這時候如果在類別中有一個可以識別物件的屬性且又對應到資料庫的主鍵時


則這個類別就是 個體型別 (Entity Type)


反之如果不存在任何一個屬性能對應到主鍵時則稱之為 值型別 (Value Type)