如何使用java JDBC获取MySql的数据库“Schema”名称列表

如何使用java JDBC获取MySql的数据库“Schema”名称列表?

DatabaseMetaData的getSchemas()方法很明显但是使用MySQL你必须使用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()

例:

 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") ); } 
  • 使用SHOW DATABASES来查看它是否在里面,
  • 检查INFORMATION_SCHEMA,
  • 或者只是USE DATABASE; 并抓住错误。
 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); } 

希望这有帮助

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