0
如何将所有数据库从服务器添加到java数组中的字符串数组?我正在使用JOOQ api来执行SQL语句,我需要获取comboBox中的所有数据库,以便我可以选择特定的数据库。获取所有数据库并转换为字符串数组
如何将所有数据库从服务器添加到java数组中的字符串数组?我正在使用JOOQ api来执行SQL语句,我需要获取comboBox中的所有数据库,以便我可以选择特定的数据库。获取所有数据库并转换为字符串数组
你有几个选择。例如,你可以使用从jOOQ-元生成的 类(或产生的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的Databa阅读seMetaData:
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();
谢谢你的详细答案,我已经解决了使用最后一个选项的问题。 – user506246
什么是底层数据库系统? – Alex
在哪个数据库服务器上? –
MySQL,在Linux服务器下运行 – user506246