Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取所有数据库并转换为字符串数组_Java_Sql_Database_Arrays_Jooq - Fatal编程技术网

Java 获取所有数据库并转换为字符串数组

Java 获取所有数据库并转换为字符串数组,java,sql,database,arrays,jooq,Java,Sql,Database,Arrays,Jooq,如何在java中将所有数据库从服务器添加到字符串数组?我正在使用JOOQAPI执行SQL语句,我需要在comboBox中获取所有数据库,在这里我可以选择特定的数据库。您有几个选项。例如,您可以使用生成的 来自jOOQ meta的类(或自己生成信息_模式), 然后写: Factory create = new Factory(connection, dialect); String[] array = create.selectDistinct(TABLES.TABLE_SCHEMA)

如何在java中将所有数据库从服务器添加到字符串数组?我正在使用JOOQAPI执行SQL语句,我需要在comboBox中获取所有数据库,在这里我可以选择特定的数据库。

您有几个选项。例如,您可以使用生成的 来自jOOQ meta的类(或自己生成信息_模式), 然后写:

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);
或者,使用
显示表格
命令:

String[] array =
create.fetch("SHOW TABLES")
      .intoArray(0, String.class);
另一种选择是从JDBC的数据库元数据中读取:

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();
List schemas=create.meta().getSchemas();

什么是底层数据库系统?MySQL,在Linux服务器“show databases”下运行此命令提供所有数据库names@HRigger:我的服务器上有多个数据库,我需要获取ComboBox中列出的所有数据库谢谢您的详细回答,我已使用最后一个选项解决了问题。