Java 在spring Hibernate中首次运行服务器时自动创建数据库和表,不执行任何操作?

Java 在spring Hibernate中首次运行服务器时自动创建数据库和表,不执行任何操作?,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,在spring Hibernate中首次运行服务器时,如何在不执行任何操作的情况下自动创建数据库和表? 这是我的xml文件。但不创建数据库。若数据库已经存在,这段代码是自动创建表时,我将做的第一个操作。至少我需要在第一次启动服务器时自动创建表 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property

在spring Hibernate中首次运行服务器时,如何在不执行任何操作的情况下自动创建数据库和表? 这是我的xml文件。但不创建数据库。若数据库已经存在,这段代码是自动创建表时,我将做的第一个操作。至少我需要在第一次启动服务器时自动创建表

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <property name="username" value="***" />
        <property name="password" value="***" />
    </bean>
<bean id="hibernate3AnnotatedSessionFactory"        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.current_session_context_class">thread</prop>
                <prop key="hibernate.show_sql">true</prop>                   
                <prop key="hibernate.hbm2ddl.auto">create</prop>     
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        </property>
    </bean>

如果在部署应用程序时希望数据库处于已知状态,请使用:

hibernate.hbm2ddl.auto=create-drop
如果您只想生成db模式,请使用:

hibernate.hbm2ddl.auto=create
在xml中,您已经指定了两次属性

另一件事是:

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'test')
未知数据库“test”-是否创建了名为test的数据库


我强烈建议使用一些独立的工具测试您的连接。例如,您可以在intellij的数据库视图中添加jdbc url,并检查其是否正确。

如果您希望在部署应用程序时使数据库处于已知状态,请使用:

hibernate.hbm2ddl.auto=create-drop
如果您只想生成db模式,请使用:

hibernate.hbm2ddl.auto=create
在xml中,您已经指定了两次属性

另一件事是:

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'test')
未知数据库“test”-是否创建了名为test的数据库


我强烈建议使用一些独立的工具测试您的连接。例如,您可以在intellij的数据库视图中添加jdbc url,并检查它是否正确。

您将给您的
hibernate.hbm2ddl.auto
属性两次赋值。您想要哪一个,
创建
更新
?hibernate.hbm2ddl.auto属性值两次。因为如果我要插入任何一行,它将替换以前的行数据。如果我同时编写create和update,那么它在插入数据时添加了新行。属性只能有一个值,所以这不起作用。检查它可能会帮助您将
hibernate.hbm2ddl.auto
属性的值赋予两次。您想要哪一个,
创建
更新
?hibernate.hbm2ddl.auto属性值两次。因为如果我要插入任何一行,它将替换以前的行数据。如果我将编写create和update这两个属性,那么它将在插入数据时添加新行。属性只能有一个值,因此无法工作。检查它可能会对您有所帮助。我已经尝试了hibernate.hbm2ddl.auto=create drop属性。但它不是创建db。如果我手动创建db测试。它运转良好,也不例外。我需要在部署时自动创建数据库。可能吗?哦,我明白了。您需要创建数据库并生成模式。我不确定,但我认为你必须创建数据库。好的,谢谢。我需要在部署时创建此表。当我第一次使用时,它正在创建。你能帮忙吗?我已经尝试了hibernate.hbm2ddl.auto=create-drop属性。但它不是创建db。如果我手动创建db测试。它运转良好,也不例外。我需要在部署时自动创建数据库。可能吗?哦,我明白了。您需要创建数据库并生成模式。我不确定,但我认为你必须创建数据库。好的,谢谢。我需要在部署时创建此表。当我第一次使用时,它正在创建。你能帮忙吗?