【发布时间】:2012-08-10 22:42:04
【问题描述】:
我想编写 Java 代码(也使用 Oracle 11g 和 JDBC)来检查特定用户或模式是否存在。我怎样才能通过仅使用 Java 代码而不是通过执行 SQL 查询(在我的 Java 代码中)来进行检查来做到这一点?
谢谢。
编辑 -
方法一:
在 MySQL 中,我们可以使用这样的东西 -
Connection conn = DriverManager.getConnection(url,username,password);
DatabaseMetaData DMD = conn.getMetaData();
ResultSet res = DMD.getCatalogs();
while (res.next()) {
String database = res.getString("TABLE_CAT");
}
现在在 while 中放置一个 if 来检查它是否存在 DB。
方法2:
或者,您可以执行本文中提到的一些查询。 Using SQL query to determine if a table exists
我想使用类似方法 1 的方法来完成工作,而不是方法 2 - 这就是我的意思。
【问题讨论】:
-
不查询数据库,你怎么知道你在数据库中有什么?我看到唯一的选择是,在您的应用程序内的平面文件中保留这些条目的另一个副本(我认为这是非常糟糕的方式)。
-
您可以尝试建立连接而不执行查询。但这只有在 db 用户具有
connect权限时才有效。 -
@gkuzmin:建立连接是否足以获取架构和用户详细信息?不要误会我的意思,我不是数据库方面的专家。
-
为什么您不想对数据库运行任何查询?当您想从数据库中获取数据时,这似乎是一个奇怪的限制。此外,根据原因,它还可能排除
conn.getMetaData()之类的方法(当然,它会在后台运行 SQL 查询以获取其数据)。