9
votes

comment obtenir la liste des bases de données « schéma » de noms MySql en utilisant Java JDBC

comment obtenir la liste des bases de données "schéma" de noms MySql en utilisant Java JDBC?


0 commentaires

4 Réponses :


20
votes

Le getschemas () code> méthode du DatabasemetaData est l'évident mais avec MySQL, vous devez utiliser getcatalogs () code>

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 () P>

Exemple: P>

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") );
}


3 commentaires

JDBC permet d'accéder aux schémas et aux catalogues, mais c'est la signification, c'est un peu SMSM spécifique et certains offrent à la fois d'autres un seul et pas toujours avec la méthode que vous soupçonniez d'abord ...


Si le serveur MySQL fonctionne sous Windows, ce code imprime les noms de base de données en minuscules. Cela peut ou peut ne pas être ce que vous voulez ...


sur le côté, si quelqu'un est à la recherche d'aller chercher le nom du schéma de Spring JdbcTemplate (au lieu de JDBC ordinaire), il serait jdbcTemplate.getDataSource (). getConnection (). getCatalog () pour mySql



4
votes
  • Soit utiliser SHOW DATABASES pour voir si il est à l'intérieur,
  • Vérifiez la INFORMATION_SCHEMA,
  • ou tout simplement faire BASE DE DONNÉES; et les prises l'erreur.

0 commentaires

3
votes
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 commentaires

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

0 commentaires