1. Obtenez une instance de cet objet
Connexion CON; CON = DRIVERMANGER.GETCONNECTION (URL, nom d'utilisateur, mot de passe); DatabaseMetAdata dbmd = con.getMetadata ();
2. Utilisation de la méthode GetTables
prototype:
ResultSet DatabaseMetAdata.getTables (catalogue de chaîne, schéma de chaîne, nom de table de chaîne, chaîne [] type)
Cette méthode peut renvoyer le résultat de résultat résultat, avec 5 colonnes dans le jeu de résultats. S'il dépasse les limites, une exception hors limites sera signalée.
Description de la fonction: Obtenez les informations du tableau des paramètres spécifiés
Description du paramètre:
Paramètres: catalogue: nom du répertoire, généralement vide.
Paramètres: Schéma: Nom de la base de données, pour Oracle Username Paramètre: TableName: Nom de la table Paramètre: Type: Type de table (Table | View)
Remarque: Pendant l'utilisation, le nom du paramètre doit être en capital. Sinon, vous obtenez quelque chose.
3. Utilisation de la méthode GetColumns
Description de la fonction: Obtenez des informations sur la colonne du tableau spécifié.
prototype:
ResultSet DatabaseMetAdata GetColumns (catalogue de chaînes, schéma de chaîne, nom de table de chaîne, nom de chaîne)
Description du paramètre:
Catalogue des paramètres: Nom de catégorie Schéma de paramètre: Nom du schéma utilisateur Nom du paramètre: Nom de la table de données Nom de la table Colonned Nom de la colonne: Nom de la colonne
4. Méthodes d'utilisation de getPrimaryKeys
Description de la fonction: Obtenez les informations principales de la clé du tableau spécifié.
prototype:
ResultSet DatabaseMetadata GetPrimaryKeys (catalogue de chaînes, schéma de chaîne, nom de table de chaîne)
Description du paramètre:
Catalogue des paramètres: Nom de catégorie Schéma de paramètre: nom de schéma utilisateur Nom du paramètre Nom de la base de données Nom de la table
Remarque: assurez-vous de spécifier le nom du tableau, sinon la valeur de retour n'aura rien.
5. Méthode.Usage de GetTypeInfo ()
Description de la fonction: Obtenez les informations de type de données de la base de données actuelle.
6. Méthodes d'utilisation de GetExportsEdKeys
Description de la fonction: Obtenez des informations de clé étrangère pour le tableau spécifié.
Description du paramètre:
Catalogue des paramètres: Nom de catégorie Schéma de paramètre: nom de schéma utilisateur Nom du paramètre Nom de la base de données Nom de la table
Expliquons ces deux paramètres en utilisant MySQL et Oracle comme exemples.
La structure organisationnelle des données Oracle et MySQL est complètement différente. En termes d'apparence intuitive, les façons d'attacher des tables et des vues sont différentes. Dans Oracle, un mécanisme de gestion des utilisateurs est adopté. Lorsque des tables et des vues sont attachées à un certain utilisateur, l'utilisateur deviendra un «schéma» d'Oracle; Dans MySQL, les tableaux et les vues sont directement attachés à la base de données. De cette façon, obtenir un catalogue dans Oralce devient nul, et obtenir un schéma est capitalisé est une liste de noms d'utilisateurs. Le catalogue obtenu dans MySQL est la liste des noms de base de données, et le schéma est nul. Les lecteurs peuvent tester les deux méthodes suivantes fournies par DatabaseMetAdata, et ils renvoient à la fois le type de données de résultat.
// Obtenez la définition de la catégorie
rs = dbmd.getCatalogs ();
// Obtenez la définition du modèle
rs = dbmd.getschemas ();
Basé sur l'analyse ci-dessus:
Si la base de données est MySQL: alors le premier catalogue de paramètres peut être le nom de la base de données. Lorsque cet élément est NULL, c'est le nom de la base de données spécifiée dans la chaîne URL et le deuxième schéma de paramètre, remplissez NULL;
Si la base de données est oralce: alors le premier catalogue de paramètres est nul, le deuxième schéma de paramètre est rempli du nom d'utilisateur en majuscule tel que "Scott". Si l'élément est nul, la portée de la requête est tous les utilisateurs de schéma.
Analyse de la valeur de retour
La valeur de retour de la méthode GetTables est un jeu de résultats (résultat). Pour les informations dans l'ensemble de résultats, plus de 20 éléments sont réservés à JDK1.5 pour les informations pertinentes du tableau. Cependant, toutes les données ne les renverront pas plus de 20 éléments. Nous pouvons souvent utiliser quatre éléments:
Table_schem: Pour Oracle, c'est un nom d'utilisateur en majuscule et NULL pour MySQL.
TABLE_NAME: le nom de la table.
Table_cat = null pour oracle et nom de base de données pour mysql.
Table_type = type de table, utilisé pour la table et la vue en fonction d'un élément dans le quatrième tableau de type de paramètre.
Importer java.sql.connection; import java.sql.databasememetadata; import java.sql.drivermanager; import java.sql.resulttset; import java.sql.sqlexception; String url = "JDBC: Oracle: mince: @localhost: 1521: zhyl"; // Adresse du serveur :, Numéro de port: 1521, Nom de l'instance de la base de données: Zhyl. Private String username = "Andatabase"; chaîne privée pw = "oracl"; connexion privée conn = null; // le nom d'utilisateur et le mot de passe sont créés par vous-même. Connexion publique OpenConn () {try {class.forname ("oracle.jdbc.driver.oracledriver"); try {conn = driverManager.getConnection (url, nom d'utilisateur, pw);} catch (sqlexception e) {// todo a auto-généré Catch Blockex {// TODO GÉNÉRÉ AUTO-GÉNÉRÉ BLOCKE.PRINTSTACKTRACE ();} RETOUR Conn;} Public ResultSet EXECUTERERY (String SQL) {Dababase DB = new Dababase (); ResultSet rs = Null; Connection con = db.OpenConn (); essayez {instruction sm = con.creatEstatement (); rs = sm.ExecuteQuery (SQL); } catch (sqlexception e) {// TODO Block de catch généré automatiquement e.printStackTrace (); } return rs;} public void close () {try {conn.close (); } catch (sqlexception e) {// TODO Block de catch généré automatiquement e.printStackTrace (); }} // Obtenez les noms de table de toutes les tables de la base de données et ajoutez-les à la structure de la liste. Liste publique GetTableNamelist (Connection Conn) lève Sqlexception {databaseMetAdata dbmd = conn.getmetadata (); // accéder à toutes les tables sous l'utilisateur actuel et le résultat de résultat rs = dbmd.gettables (null "," andatabase ","% ", new String [] {" Tableau " }); // system.out.println ("kkkkkkkkk" + dbmd.getTables ("null", "%", "%", new string [] {"table"})); list tableNamelist = new ArrayList (); while (rs.next ()) {TableNamelist.add (Rs.getString ("") ");} TableNamelist;} // Obtenez les noms de colonne de toutes les colonnes de la table de données et ajoutez-les à la structure de la liste. La liste publique GetColumnNameList (Connection Conn, String TableName) lève Sqlexception {DatabaseMetAdata dbmd = conn.getMetadata (); resultSet rs = dbmd.getColumns (null, "%", tableName, "%"); liste ColummNameList = new ArrayList (); While (Rs.Next ()) {ColumnNamelist.Add (Rs.GetString ("Column_name"));} Return ColumnNameList;} public static void Main (String S []) lève Sqlexception {dababase dbConn = new Dababase (); Connection Conn = dbConn.opeCn (); if (Conn == Null) System.out.out.Println (); Échec "); elsesystem.out.println (" Conn réussi "); essayez {list TableList = dbConn.getTableLaMelist (Conn); // Répondre toutes les tableaux de l'utilisateur actuel // list tableList = dbConn.getColumnNamelist (Conn," Connexion "); // Le nom de la table doit être dans UPPERCase, Take All Out All Off System.out.println (tableList.size ()); pour (objet objet: tableList) {String ss = (string) objet; System.out.println (ss);}} catch (sqlexception e) {e.printStackTrace ();} enfin {if (Conn! = Null) {Try {Conn.Close ();} Catch (sqException e) {e.printStackTrace (););}}}}Ce qui précède est le contenu complet de la requête Java Toutes les tables de la base de données Oracle, DatabaseMetAdata (explication détaillée) qui vous a été apportée par l'éditeur. J'espère que tout le monde soutiendra Wulin.com plus ~