Java 如何通过Hibernate创建数据库

Java 如何通过Hibernate创建数据库,java,spring,hibernate,postgresql,Java,Spring,Hibernate,Postgresql,在我的spring项目中,我使用Hibernate将实体类导出到以前创建的数据库中。但这需要最终用户知道如何在数据库管理器系统中创建数据库(目前我正在使用Postgresql) 如果只考虑安装了postgresql的机器(以及首次运行应用程序时提供的用户名和密码),是否有任何方法可以,如果服务器中不存在Hibernate,Hibernate将在服务器中创建一个新数据库?查看Hibernate.hbm2ddl.auto中的Hibernate.cfg.xml文件的参数。我建议您使用此链接:如果您的配

在我的spring项目中,我使用Hibernate将实体类导出到以前创建的数据库中。但这需要最终用户知道如何在数据库管理器系统中创建数据库(目前我正在使用Postgresql)


如果只考虑安装了postgresql的机器(以及首次运行应用程序时提供的用户名和密码),是否有任何方法可以,如果服务器中不存在Hibernate,Hibernate将在服务器中创建一个新数据库?

查看
Hibernate.hbm2ddl.auto
中的
Hibernate.cfg.xml
文件的参数。我建议您使用此链接:

如果您的配置如下所示

<hibernate-configuration>

  <session-factory>

    <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.url">jdbc:postgresql://host:port/database</property>
    <property name="connection.username">username</property>
    <property name="connection.password">password</property>


    <property name="current_session_context_class">thread</property>
    <property name="hibernate.show_sql">false</property>
<property name="hbm2ddl.auto">update</property>
  </session-factory>
</hibernate-configuration>

org.hibernate.dialogue.PostgreSqlDialogue
org.postgresql.Driver
jdbc:postgresql://host:port/database
用户名
密码
线
假的
更新
然后,数据库将由Hibernate自动创建

更新:

好了,现在我明白你想要什么了。您想用Hibernate启动Postgresql server。这是不可能的。Hibernate不这样做

你可以用它来做这个

  • 另一个以应用程序开头的脚本
  • 专家/蚂蚁的目标
  • 建造工作
  • 但最好的解决方案是使用不需要外部服务器的内存中数据库(例如H2或JavaDerby)

    另见

    将“创建数据库…”(请参阅)作为本机SQL查询运行

    .createSQLQuery(“…”).executeUpdate()

    至少据我所知,Hibernate不会创建数据库,只创建其中的表


    我想您需要通过第二个持久化单元/连接连接到postgresql,因为这种方法是鸡和蛋的性质。

    可能重复无重复,我不想创建/更新表,但要创建数据库。可能重复我已经在数据库中创建/更新表,我现在希望能够通过Hibernate在服务器上创建数据库,以避免将此任务交给用户。不,这不会发生:如果我运行应用程序而不创建数据库,我将收到一个错误。我的配置文件是:。发生了什么错误?在您的问题以及github项目中发布此消息。如果在运行应用程序之前我没有手动创建数据库,则当应用程序尝试访问数据库时,我会收到此错误: