3

現在、 jOOQを使用してJavaの組み込みH2データベースにアクセスし、テーブルクラスなどを生成しています。現在、次のようなクエリを実行できます。

create.select().from(TEST).fetch()

私のコードでは、結果などを返します。

ただし、情報スキーマを照会できません。H2コンソールを使用して問題なくアクセスでき、特定のinformation_schemaテーブルのビューの作成は正常に機能します。私の質問は、たとえば次のようなクエリを実行するために、information_schemaにどのようにアクセスする必要があるかです。

SELECT * FROM INFORMATION_SCHEMA.TABLES

私のJavaコード内から?ビューを作成する必要がありますか、jooq-metaまたはその他の手段でスキーマにアクセスできますか、またはjooq-codegenによって使用されるプロパティファイルに何かを追加する必要がありますか(information_schemaは生成されたテーブルクラスに作成されません) ?または、他の何か?


編集:これはjooqを使用するための私の最初の進出であり、MySQLのバックグラウンドから来ています。私が効果的に達成しようとしているのは、DB関連のコードが機能することを確認するためにいくつかの単体テストを実行できるようにすることです。そのため、データベースのメタデータ(スキーマ)にアクセスして、ユーザーが作成したテーブルが存在するかどうかを知らなくても、何かを返したいと思います。

4

1 に答える 1

2

INFORMATION_SCHEMA他のスキーマと同じように、クラスを生成できます。実際、jOOQ-metaには、データベーススキーマのリバースエンジニアリングに必要なクラスの一部が含まれています。

高度なコード生成プロパティに関するマニュアルのセクションでは、いくつかの「入力スキーマ」をロードするようにコードジェネレーターを構成する方法について説明しています。

<database>
  <schemata>
    <schema>
      <inputSchema>...</inputSchema>
    </schema>
    [ <schema>...</schema> ... ]
  </schemata>
</database>
于 2012-08-22T07:28:22.697 に答える