(轉)配置jboss,mysql,seam,eclipse步驟(三)

seam自動建表狀態的調整

   jboss中啓動booking應用之後,自動在mysql的p20080422庫中建立三個表:booking,customer,hotel。現在的問題是一旦停止該應用(可以通過刪除C:/jboss-4.2.1.GA/server/default/deploy目錄下的兩個文件jboss-seam-booking.ear、jboss-seam-booking-ds.xml達到停止應用的目的),則p20080422庫中建立的三個表自動刪除。

   我們對這種情況再次觀察一下:

   到C:/jboss-4.2.1.GA/server/default/deploy目錄,保證jboss-seam-booking.ear、jboss-seam-booking-ds.xml已被刪除。
   此時,我們看一看mysql數據庫服務器中的p20080422庫,裏面沒有表。(可以用jise非常方便地觀察到數據庫的情況。)
   啓動jboss。如果之前已經啓動,不必重新啓動。
   切換到eclipse,用E:/eclipse-jbossIDE2.0/p20080422/examples/booking/build.xml文件對booking項目進行編譯(以前修改好的配置不要變噢)。編譯完成後,C:/jboss-4.2.1.GA/server/default/deploy目錄下多了兩個文件jboss-seam-booking.ear、jboss-seam-booking-ds.xml,同時,booking應用被啓動。在joss的cmd窗口,可以看到:
  
   ... ...
   [org.jboss.deployment.EARDeployer] Started J2EE application: file:/C:/jboss-4.2.1.GA/server/default/deploy/jboss-seam-booking.ear
   ... ...
  
   此時,我們看一看mysql數據庫服務器中的p20080422庫,裏面多了三張表。
   刪除C:/jboss-4.2.1.GA/server/default/deploy目錄下的jboss-seam-booking.ear、jboss-seam-booking-ds.xml文件。
   再次用jise看一看p20080422,裏面的三個表又消失了。
   實際應用中我們不希望這樣。
   關鍵在這裏:E:/eclipse-jbossIDE2.0/p20080422/examples/booking/resources/META-INF/persistence.xml文件中有一行:
  
   <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
  
   這一行決定了數據庫中的相關表將由java應用程序自動建立、刪除。
  
   我們通過以下操作來改變這種情況。
   1、編譯並啓動booking應用。
   2、複製p20080422數據庫。可以用好多工具程序,例如EMSMysql Manager,甚至mysql的命令行工具。這裏推薦用jise,鼠標按鍵不超過5次就可以完成:)。jise-數據管理-數據庫管理-選p20080422,右鍵-複製-yes-目的名,填pTmp,ok。(這可是我用了2008.4.26、27一天多時間新加的功能)
      這樣,booking庫的表結構和數據都複製到pTmp臨時庫中。
   3、刪除C:/jboss-4.2.1.GA/server/default/deploy目錄下的jboss-seam-booking.ear、jboss-seam-booking-ds.xml文件。這樣booking應用程序終止了。
   4、修改E:/eclipse-jbossIDE2.0/p20080422/examples/booking/resources/META-INF/persistence.xml文件,
      把這一行註銷掉:
  
         <!--
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
          -->
         
   5、把剛纔複製到pTmp臨時庫中的表及其中的數據再複製到p20080422中。仿照步驟2操作即可。
   6、編譯並啓動booking應用。
         
   通過以上操作,保證了數據庫在應用停止之後,仍然存在。
   實際上,將應用配置爲自動建立、刪除數據庫還是非常有用的,特別是在開發、調試過程中,我們可以通過修改java entity,來自動生成表的結構,然後保存這張表,免去一步步建表的繁瑣過程。
  
   提示:在jise中,可以
       雙擊databases面板中的數據庫名來顯示該數據庫中的所有表;
       單擊tables面板中的表名顯示錶中的數據;
       右擊databases面板中的數據庫名,複製或者刪除數據庫;
       刪除數據庫時,databases面板中的數據庫名列表可以多選;
       顯示數據時,在右側的數據表格中,右鍵可以在“列移動模式”和“排序牧師”之間切換。在“排序模式”下,單擊字段名稱可以排序。在“列移動模式”下,拖動字段名稱可以移動一列。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章