带有安装向导的Spring Web应用程序,用于数据库配

时间:2013-05-30 09:13:04

标签: hibernate spring-mvc jpa

我希望我的Spring 3.1 + JPA + Hibernate Web应用程序在首次运行时拥有数据库属性的设置向导。我为我的模型层使用JPA注释,所有配置都是xml格式,即(dispatcher-servlet.xml,application-context.xml)。我有一个预先存在的mysql.jdbc.properties文件,在部署期间读取到应用程序上下文。我想允许用户在Web浏览器中输入数据库属性(数据库名称,URL,用户名,密码),然后应用程序生成数据库表。我该怎么做?

我需要指定当前设置如下 我对JPA& amp;的配置Hibernate如下:我有一个预先存在的mysql.jdbc.properties文件,在部署期间使用 org.springframework.context.support.ReloadableResosurceBundleMessageSource 读取到应用程序上下文豆类。 我的数据配置bean看起来像这样:

<bean id="dataSource"
 class="org.springframework.jdbc.datasource.DriverM anagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>

<bean id="entityManagerFactory"
  class="org.springframework.orm.jpa.LocalContainerE ntityManagerFactoryBean"
p:dataSource-ref="dataSource"
packagesToScan-ref="jpaPackages"
p:jpaVendorAdapter-ref="hibernateVendor"
p:jpaPropertyMap-ref="jpaPropertyMap" />

<util:list id="jpaPackages">
<value>org.kemri.wellcome.dhisreport.api.model</value>
<value>org.hisp.dhis.dxf2.importsummary</value>
</util:list>

<bean id="hibernateVendor" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:showSql="false"/>

我想允许用户在Web浏览器中输入数据库属性(数据库名称,URL,用户名,密码),然后应用程序首次在Web应用程序上生成数据库表

1 个答案:

答案 0 :(得分:0)

您可以在运行时构建Configuration

Configuration cfg = new Configuration();

Configuration类添加实体的方法很多。例如,你可以这样做:

cfg.addPackage("com.foo.bar");

您使用Configuration.setProperty()设置属性。我建议你阅读文档:http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/session-configuration.html

通过这种配置,Hibernate可以使用SchemaExport生成DDL。首先创建一个:

SchemaExport se = SchemaExport(cfg);

然后使用create运行脚本:

se.create(true, true);

编辑:经过一些研究后我发现这可以在Spring中完成,因此您不必再次创建和构建会话。请参阅此文章:http://hillert.blogspot.com/2010/05/using-hibernates-schemaexport-feature.html