close

準備到這個步驟後,我們終於可以準備將網站建立起來了,不過網站架起來時需要連線資料庫...!!這個資料庫我們還沒建呢,而且,說實在話,程式都是Appfuse的範本幫我們寫的,到底需要建立什麼樣的資料表與欄位,我們也不清楚;放心,這整個都是有配套措施的,接下來我們來介紹怎麼把範本網站所需要的資料庫架設起來。

資料庫處理

立資料

我們把pom.xml中的資料庫組態設定完成後,要開始建立資料庫了;建立資料庫並不是要求讀者下SQL檔去建立資料庫,反而是要求讀者下指令,去指示Maven幫忙建立資料庫,而建立資料庫的指令是:mvn hibernate3:hbm2ddl。

我們在這邊利用了hibernate3的套件,來幫我們進行建立DB,從Console上可以看到,Maven的hibernate3 plugin,幫我們建立了Table,所以我們連到DB看一下。

從上方二張圖以看到,hibernate3幫我們建立了三張表格,但是裡面並沒有資料。

原理

hibernate3的plugin是如何幫我們建立資料庫的表格及欄位的呢?其實是因為範本網站使用hibernate這個framework,所以必須在JAVA的Model中定義資料表及欄位,並且在hibnernate.cfg.xml中宣告會使用到的Model,我們可以分別來看看這二邊的資料,下圖是hibenrnate.cfg.xml:

下圖是User.java的Table宣告:

下圖是User.java的欄位宣告:

這樣就可以很明白了,hibernate3的Plugin是依靠這些資料,來幫我們建立相對應的資料表及欄位的。

初始化資料

建立了資料庫後,接下來就要Insert資料了;一樣,利用Maven的指令,這樣我們要將sample-data.xml中的資料Insert到資料庫中。在Insert前,我們先來看一下sample-data.xml 。

Sample-data.xml

還記得我們有刪除一個叫sample-data.xsd的檔案吧,那時有說過,sample-data.xml才是正體,因為初始化的資料是儲存在這裡的,我們把sample-data.xml打開來看看:

可以看到它定義了table、欄位、及對應的資料,所以程式就可以幫我們將對應的資料匯入資料庫了。這一份sample-data.xml主要是記錄二個使用者及二個角色,使用者是user(密碼為user)、admin(密碼為admin),及角色ROLE_USER、ROLE_ADMIN,並綁定了使用者與角色的關係。瞭解了這一份檔案後,我們就可以請Maven幫我們匯入資料了。

匯入初始資料

我們利用指令mvn dbunit:operation,這個plugin會幫我們把sample-data.xml中的資料匯入資料庫。

這時候重新回去看資料庫的資料。

注意事項

Maven的dbunit plugin分別有提供sample-data.xml匯入DB及DB的資料匯成sample-data.xml的方法,不過因為之前在測試時,sample-data.xml有一個很大的問題,那就是它匯入的順序不是依照XML中的順序,而是依照Table的字母順序,這樣會造成:

我們要匯入A資料表時,因為A資料表有參考到B資料表的資料,所以B資料表的資料要先進行匯入,但是dbunit這個plugin並不支援我們的順序,所以實作起來有一些問題。

因此,建議讀者從這時候開始,備份一份資料庫的文件後,利用文件的方式進行控管,而不是利用dbunit的plugin來控管。

架設在Eclipse中

終於要起動我們的Server了,不論是利用Maven的tomcat plugin(指令:mvn tomcat:run),或是直接利用Eclipse的方式設架,都不是問題,不過建議讀者使用Eclipse的環境來架設,因為這樣還能進入到debug模式進行除錯。

我們假設讀者在Eclipse中的Server已設定完成,所以我們直接在專案視窗中選擇專案→滑鼠右鍵→Debug As→Debug on server。

運行中Eclipse會問你一些Server的設定問題,這邊我們就跳過這個部份;如果沒有意外的話,網站會運行在http://localhost:8080/MyTestProject(其中MyTestProject是這個專案的名稱),用瀏灠器開啟後會看到:

i18n修正

現在看起來網站已經架設起來了,不過文字顯示怎麼怪怪的,看起來我們的i18n有問題,所以我們來看一下我們的i18n檔案,路徑在/MyTestProject/src/main/resources/ApplicationResources_zh_TW.properties,不過在開啟這支檔案前,請先確定我們的Eclipse有安裝「Editor Properties」,因為它會幫我們做文字的切換。

打開ApplicationResources_zh_TW.properties後:

看起來是很正常,不過這是用Editor properties,我們用一般的方法開啟來看看:

這樣我們就知道了問題了,正常的文件應該是長成這樣:

解決這個問題的方法,就是在editor properties的視窗中,將全部剪下、再貼上、儲存,即可解決(因為editor properties會自動幫我們轉換)。

重啟tomcat後,重新連上網頁後,看到如下圖:

利用admin/admin或user/user的帳號/密碼,大家可以登入去玩玩這個範本網站。

arrow
arrow

    JAVA Programmer 發表在 痞客邦 留言(0) 人氣()