comment obtenir la liste des bases de données "schéma" de noms MySql en utilisant Java JDBC? P>
4 Réponses :
Le 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> getschemas () code> méthode du DatabasemetaData est l'évident mais avec MySQL, vous devez utiliser
getcatalogs () code>
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") );
}
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
SHOW DATABASES code> pour voir si
il est à l'intérieur, li>
- Vérifiez la INFORMATION_SCHEMA, li>
- ou tout simplement faire
BASE DE DONNÉES; code> et les prises
l'erreur. li>
ul>
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)); }