3

特定のユーザーまたはスキーマが存在するかどうかをチェックするJavaコード(Oracle 11gおよびJDBCも使用)を作成したいと思います。チェックを行うためにSQLクエリ(Javaコード内)を実行せずに、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を入れて、DBが存在することを確認します。

方法2:

または、この投稿に記載されているようないくつかのクエリを実行できます。 SQLクエリを使用してテーブルが存在するかどうかを判断する

方法2の代わりに方法1のようなものを使って仕事をしたい-それが私が意味したことです。

4

1 に答える 1

5

この種のことについてデータベースに問い合わせる純粋な JDBC の方法は、Java アプリケーションで DatabaseMetaData クラスを使用することです。DatabaseMetaData.getSchemasは、データベース内の一連のスキーマを提供します。 DatabaseMetaData.getTablesは、テーブルのリストを提供します。ResultSetこれらのオブジェクトを反復処理して、特定のテーブルまたはスキーマが存在するかどうかを確認するコードを記述できます。

もちろん、舞台裏では、JDBC ドライバーは単に Oracle データ ディクショナリに対して SQL クエリを実行して、この情報を取得しています。

于 2012-08-14T15:41:12.147 に答える