come ottenere l’elenco dei nomi “Schema” dei database di MySql usando java JDBC

come ottenere l’elenco dei nomi “Schema” dei database di MySql usando java JDBC?

Il metodo getSchemas() di DatabaseMetaData è ovvio ma con MySQL devi usare getCatalogs()

http://download.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getSchemas () http://download.oracle.com/javase/7/docs/api/java/sql /DatabaseMetaData.html#getCatalogs ()

Esempio:

 Class.forName("com.mysql.jdbc.Driver"); // change user and password as you need it Connection con = DriverManager.getConnection (connectionURL, "user", "password"); ResultSet rs = con.getMetaData().getCatalogs(); while (rs.next()) { System.out.println("TABLE_CAT = " + rs.getString("TABLE_CAT") ); } 
  • Utilizzare i SHOW DATABASES per vedere se è all’interno,
  • Controlla il INFORMATION_SCHEMA,
  • o semplicemente USE DATABASE; e prendere l’errore.
 DatabaseMetaData meta = conn.getMetaData(); ResultSet schemas = meta.getSchemas(); while (schemas.next()) { String tableSchema = schemas.getString(1); // "TABLE_SCHEM" String tableCatalog = schemas.getString(2); //"TABLE_CATALOG" System.out.println("tableSchema"+tableSchema); } 

Spero che questo aiuto

 DatabaseMetaData dbmd = con.getMetaData(); ResultSet ctlgs = dbmd.getCatalogs(); while(ctlgs.next()) { System.out.println("ctlgs = "+ctlgs.getString(1)); }