Partie III
Langages et outils
314
© Éditions Eyrolles
Comme nous l’avons vu au chapitre 5, MySQL ne renseigne pas encore le nom de catalogue.
Ainsi, la méthode getSchemaName() n’est pas encore reconnue.
Le code suivant (ResulSetMeta.java) utilise des méthodes de l’interface ResultSetMetaData sur la base de la requête extrayant trois colonnes dans la table Avion :
Interface DatabaseMetaData
L’interface DatabaseMetaData est utile pour connaître des aspects plus généraux de la
base de données cible (version, éditeur, prise en charge des transactions…) ou des informations sur la structure de la base (structures des tables et vues, prérogatives...).
Plus de quarante méthodes sont proposées par l’interface DatabaseMetaData. Le tableau
suivant en présente quelques-unes. Consultez la documentation du JDK pour en savoir plus.
Tableau 8-31 Extraction de méta-informations au niveau d’un curseur
Code Java
Commentaires
try { …
ResultSet curseurJava=etatSimple.executeQuery
("SELECT immat, typeAvion, cap FROM Avion");
Création du curseur.
ResultSetMetaData rsmd =
;
Création d’un objet
ResultSetMetaData.
int nbCol = rsmd.getColumnCount();
nbCol contient 3.
String nom2emeCol = rsmd.getColumnName(2);
nom2emeCol contient typeAvion.
String type2emeCol = rsmd.getColumnTypeName(2); type2emeCol contient VARCHAR.
int codeType2emeCol = rsmd.getColumnType(2);
codeType2emeCol contient 12
(code pour VARCHAR).
if (rsmd.isNullable(1) ==
ResultSetMetaData.columnNoNulls)
…
Test renvoyant vrai (la première
colonne est la clé primaire).
int p1 = rsmd.getPrecision(3);
Taille de la colonne cap (renvoie 6
pour un SMALLINT).
int t1 = rsmd.getScale(3);
Décimales de la colonne cap
(renvoie 0 pour un SMALLINT).
curseurJava.close();
Fermeture du curseur.
} catch(SQLException ex) { … }
Gestion des erreurs.
Web
curseurJava.getMetaData()
Tableau 8-32 Méthodes principales de l’interface ResultSetMetaData
Méthode
Description
ResultSet getColumns(String,
String, String, String)
Description de toutes les colonnes d’une table d’un
schéma donné.
String getDatabaseProductName()
Nom de l’éditeur de la base de données utilisée.
String getDatabaseProductVersion() Numéro de la version de la base utilisée.
Précédent

- 336/418

Suivant