在我的春季项目中,我正在使用Hibernate将我的实体类导出到以前创建的数据库中。 但这将要求最终用户知道如何在数据库管理器系统中创建数据库(当前我正在使用Postgresql)。
有没有办法,仅考虑安装postgresql的机器(以及第一次运行该应用程序时提供的用户名和密码),如果不存在,Hibernate会在服务器中创建一个新数据库?
Hibernate的可能重复项:根据实体类自动创建/更新数据库表
没有重复,我不想创建/更新表,但是创建数据库。
stackoverflow.com/questions/306806/
如果不存在PostgreSQL,可能会模拟Simulate CREATE DATABASE的副本?
复制了stackoverflow.com/questions/18389124/
如果您的配置如下所示
org.hibernate.dialect.PostgreSQLDialect
org.postgresql.Driver
jdbc:postgresql://host:port/database
username
password
thread
false
update
然后,数据库将由Hibernate自动创建。
更新:
好吧,现在我明白了你想要什么。您要使用Hibernate启动Postgresql服务器。这是不可能的。 Hibernate不会这样做。
你可以用
另一个以您的应用程序开头的脚本
一个行家/蚂蚁目标。
建造工作
但是最好的解决方案是使用不需要外部服务器(例如H2或Java derby)的内存数据库
也可以看看
如果不存在PostgreSQL,则模拟CREATE DATABASE吗?
和
Postgres数据库创建(如果不存在)
不,这不会发生:如果我在不创建数据库的情况下运行应用程序,则会收到错误消息。 我的配置文件是:github.com/klebermo/maven_example/blob/master/src/main/java/。
有什么错误? 将此发布到您的问题以及github项目lin上。
如果我在运行应用程序之前未手动创建数据库,则在应用程序尝试访问数据库时会收到以下错误消息:klebermota.eti.br/wp-content/
查看我的最新答案
作为本地SQL查询运行"创建数据库..."(请参阅??http://www.postgresql.org/docs/9.0/static/sql-createdatabase.html)。
.createSQLQuery(" ...").executeUpdate(); ...
至少据我所知,Hibernate不会创建数据库,而只会创建其中的表。
我想您需要通过第二个持久性单元/连接来连接到postgresql,因为这种方法具有"鸡到鸡"的特性。
看一下hibernate.cfg.xml文件的参数hibernate.hbm2ddl.auto。我建议您使用此链接:Hibernate hbm2ddl.auto,可能的值及其用途-有任何官方解释吗?
我已经在数据库中创建/更新了表,现在我希望能够通过Hibernate在服务器中创建DATABASE,以避免将此任务交给用户。