我想制作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 - 这就是我的意思。
答案 0 :(得分:5)
查询数据库有关此类事情的纯JDBC方法是在Java应用程序中使用DatabaseMetaData class。 DatabaseMetaData.getSchemas将为您提供数据库中的一组模式。 DatabaseMetaData.getTables会为您提供表格列表。您可以编写迭代这些ResultSet
对象的代码,以查看是否存在特定的表或模式。
当然,在幕后,JDBC驱动程序只是对Oracle数据字典执行SQL查询以获取此信息。