サーバーからJavaの文字列配列にすべてのデータベースを追加するにはどうすればよいですか?JOOQ apiを使用してSQLステートメントを実行していますが、特定のデータベースを選択できるコンボボックス内のすべてのデータベースを取得する必要があります。
質問する
477 次
1 に答える
2
いくつかのオプションがあります。たとえば、jOOQ-meta から生成されたクラスを使用して (または自分で information_schema を生成して)、次のように記述できます。
Factory create = new Factory(connection, dialect);
String[] array =
create.selectDistinct(TABLES.TABLE_SCHEMA)
.from(TABLES)
.fetchArray(TABLES.TABLE_SCHEMA);
もちろん、プレーン SQL でも同じことが実現できます。
String[] array =
create.selectDistinct(field("table_schema"))
.from("information_schema.TABLES") // Watch for case-sensitivity on MySQL
.fetchArray(0, String.class);
または、次のSHOW TABLES
コマンドを使用します。
String[] array =
create.fetch("SHOW TABLES")
.intoArray(0, String.class);
別のオプションは、JDBC の DatabaseMetaData から読み取ることです。
Connection connection = ...;
DatabaseMetaData meta = connection.getMetaData();
String[] array = create.fetch(meta.getSchemas()).intoArray(0, String.class);
jOOQ 3.0 では、jOOQ API を介してメタデータを読み取ることもできます。
List<Schema> schemas = create.meta().getSchemas();
于 2012-11-30T08:34:36.963 に答える