【发布时间】:2011-08-06 11:03:49
【问题描述】:
如何使用 java JDBC 获取 MySql 的数据库“Schema”名称列表?
【问题讨论】:
标签: java mysql database list jdbc
如何使用 java JDBC 获取 MySql 的数据库“Schema”名称列表?
【问题讨论】:
标签: java mysql database list jdbc
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 来查看是否
它在里面,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));
}
【讨论】: