用于检查给定用户,架构,表是否存在的Java代码?

时间:2012-08-14 15:27:34

标签: java jdbc oracle11g

我想制作Java代码(也使用Oracle 11g和JDBC),它将检查特定用户或架构是否存在。如何通过仅使用Java代码而不是通过执行SQL查询(在我的java代码中)来进行检查?

感谢。

编辑 -

方法1:

在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");
}

现在在if内部放一个if来检查它是否存在DB。

方法2:

或者,您可以执行本文中提到的一些查询。 Using SQL query to determine if a table exists

我想使用类似方法1来完成工作而不是方法2 - 这就是我的意思。

1 个答案:

答案 0 :(得分:5)

查询数据库有关此类事情的纯JDBC方法是在Java应用程序中使用DatabaseMetaData classDatabaseMetaData.getSchemas将为您提供数据库中的一组模式。 DatabaseMetaData.getTables会为您提供表格列表。您可以编写迭代这些ResultSet对象的代码,以查看是否存在特定的表或模式。

当然,在幕后,JDBC驱动程序只是对Oracle数据字典执行SQL查询以获取此信息。