how to get list of Databases “Schema” names of MySql using java JDBC

后端 未结 4 754
误落风尘
误落风尘 2020-11-29 09:25

how to get list of Databases \"Schema\" names of MySql using java JDBC ?

相关标签:
4条回答
  • 2020-11-29 10:16

    The getSchemas() method of the DatabaseMetaData is the obvious but with MySQL you have to use 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()

    Example:

    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") );
    }
    
    0 讨论(0)
  • 2020-11-29 10:25
    • Either use SHOW DATABASES to see if it is inside,
    • Check the INFORMATION_SCHEMA,
    • or just do USE DATABASE; and catch the error.
    0 讨论(0)
  • 2020-11-29 10:29
    DatabaseMetaData dbmd = con.getMetaData();
    ResultSet ctlgs = dbmd.getCatalogs();
    while(ctlgs.next())
    {
    System.out.println("ctlgs  =  "+ctlgs.getString(1));
    }
    
    0 讨论(0)
  • 2020-11-29 10:32
    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);
    }
    
    0 讨论(0)
提交回复
热议问题