1

MySql、JDBC、Javaを使用してコードを作成しています。APIのいくつかの用語が何を意味するのか理解できません。以下の作業を行うことができません。特定のDBが存在するかどうかをチェックするコードを作成するには、特定のテーブルDBがそのDBに存在するかどうかをチェックし、その後にそのテーブルの特定の列が続きます。

各テーブルの説明には、次の列があります。

TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM     TABLE",     "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
REMARKS String => explanatory comment on the table
TYPE_CAT String => the types catalog (may be null)
TYPE_SCHEM String => the types schema (may be null)
TYPE_NAME String => type name (may be null)
SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null)
REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are  created.      
Values are "SYSTEM", "USER", "DERIVED". (may be null)

テーブルカタログ、テーブルスキーマ、SELF_REFERENCING_COL_NAMEなどとは何ですか?

4

1 に答える 1

1

DatabaseMetadataのConnector/J実装に関する限り、データベース名を返します(CREATE DATABASEのように)。は返されますが返されません。TABLE_CATTABLE_SCHEMnullSELF_REFERENCING_COL_NAME

これはデータベースとドライバーに固有です。例として、Oracle ojdbcドライバーは、のオブジェクト所有者をnull返します。TABLE_CATTABLE_SCHEM


特定のタスク(MySQL + Connector / J)の場合:

  1. 特定のデータベースが存在するかどうかを確認するには→を使用getCatalogs()して、を取得しResultSet、その行を繰り返して列を取得するにはTABLE_CAT、データベースがその値の1つと一致する必要があります。
  2. データベースに特定のテーブルが含まれているかどうかを確認するには→getTables(databaseName, null, tableName, new String[]{"TABLE"})空以外のを返す必要がありますResultSet
  3. テーブルに特定の列が含まれているかどうかを確認するには→getColumns(databaseName, null, tableName, columnName)空でない値を返す必要がありますResultSet
于 2012-08-09T03:48:07.243 に答える