【发布时间】:2017-12-15 11:03:53
【问题描述】:
我在我的应用程序中使用 PostgreSQL 和 ORMlite,它在 Windows 服务器上运行。在创建所有表之前,我需要验证数据库是否存在于 Postgres 中,如果没有,我必须创建它。
我已经有了我的 SQL Raw:
检查是否存在:
final String SQL = "SELECT 1 from pg_database WHERE datname='MY_NOME_DB' ;";创建它(如果不存在):
String SQL= "CREATE DATABASE MY_NOME_DB ; " ;
问题:如何使用 ORMLite 执行它? 我知道要执行我可以使用的原始 SQL:
myDAO.executeRaw(SQL);
但是这里它不在特定的表上,所以我不能使用它,因为我无法创建 myDAO。
【问题讨论】:
-
我不知道 postgresql 或 ormlite 但是对于 MySQL 我可以创建一个连接不指定要使用的数据库,然后发出
SHOW databases LIKE 'MY_NOME_DB'命令。 -
Before to create all the tables, I need to verify if the database is existing in PostSql, and if not I have to create it.不好的方法。只需创建它们。如果失败,则表已经存在,或者您不允许创建它们。数据库也一样:尝试连接它。如果失败... -
这是一个可怕的想法,因为这意味着您的应用程序必须使用超级用户帐户连接到服务器。这不是你应该做的。
-
如果我在应用内使用超级用户没问题; java应用程序和数据库在同一台服务器上,应用程序是唯一访问数据库的应用程序。所以用户名和密码隐藏在java代码中......
标签: java sql postgresql ormlite