“如何获取数据库列表”;“模式”;使用javajdbc的MySql名称

“如何获取数据库列表”;“模式”;使用javajdbc的MySql名称,java,mysql,database,list,jdbc,Java,Mysql,Database,List,Jdbc,如何使用java JDBC获取MySql的数据库“模式”名称列表?数据库元数据的getSchemas()方法是显而易见的,但对于MySql,您必须使用getCatalogs() 例如: Class.forName("com.mysql.jdbc.Driver"); // change user and password as you need it Connection con = DriverManager.getConnection (connectionURL, "user", "p

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

数据库元数据的
getSchemas()
方法是显而易见的,但对于MySql,您必须使用
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
    查看 就在里面,
  • 检查信息(u SCHEMA),
  • 或者直接使用数据库和捕获 错误

JDBC允许访问模式和目录,但它的含义有点特定于DBMS,有些同时提供模式和目录,而另一些仅提供模式和目录,并不总是使用您首先怀疑的方法……如果MySQL服务器在Windows上运行,此代码将以小写形式打印数据库名称。这可能是您想要的,也可能不是您想要的……另一方面,如果有人想从Spring JdbcTemplate(而不是普通的JDBC)中获取架构名称,那么mySql的架构名称应该是JdbcTemplate.getDataSource().getConnection().getCatalog()
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));
}