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面板中的数据库名列表可以多选;
显示数据时,在右侧的数据表格中,右键可以在“列移动模式”和“排序牧师”之间切换。在“排序模式”下,单击字段名称可以排序。在“列移动模式”下,拖动字段名称可以移动一列。
jise下载