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

标签 java jdbc oracle11g

我想编写 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。

方法二:

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

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

最佳答案

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

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

关于用于检查给定用户、架构、表是否存在的 Java 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955709/

相关文章:

java - 将参数传递给方法时,强化将查询标记为 sqlInjection

mysql - 如何更新 TomEE JDBCRealm 中的用户?

database - ORA-12505, TNS :listener does not currently know of SID given in connect des

database - 'OraOLEDB.Oracle' 提供程序未在本地计算机上注册? VB脚本

java - 如何以 .jpg 文件格式从图库中获取图像?

java - 将 int 的位变成 long

java - TypeVariable.getGenericDeclaration() 没有返回我期望的类型

java - Spring中使用RequestBody解析JSON

java - 与 Firefox 数据库管理器相比,JDBC SELECT 非常慢

sql - 深度嵌套子查询分解 (CTE) 性能缓慢