1. Holen Sie sich eine Instanz dieses Objekts
Verbindungscon; con = driverManager.getConnection (URL, Benutzername, Passwort); Databasemetadata dbmd = con.getmetadata ();
2. Verwendung von Methoden Gettables
Prototyp:
ResultSet DatabaSemetadata.gettables (String -Katalog, String -Schema, String Tablename, String [] Typ)
Diese Methode kann das Ergebnis -Set -Ergebnis mit 5 Spalten im Ergebnissatz zurückgeben. Wenn es die Grenzen überschreitet, wird eine Ausnahme außerhalb der Grenzen gemeldet.
Funktion Beschreibung: Erhalten Sie die Tabelleninformationen der angegebenen Parameter
Parameterbeschreibung:
Parameter: Katalog: Verzeichnisname, normalerweise leer.
Parameter: Schema: Datenbankname, für Oracle Benutzername Parameter: TableName: Tabellenname Parameter: Typ: Tabellentyp (Tabelle | Ansicht)
Hinweis: Während der Verwendung muss der Parametername in Kapital sein. Ansonsten bekommst du etwas.
3. Verwendung der Methode GetColumns
Funktion Beschreibung: Spalteninformationen der angegebenen Tabelle abrufen.
Prototyp:
ResultSet Databasemetadata getColumns (String -Katalog, String -Schema, String Tablename, String ColumnName)
Parameterbeschreibung:
Parameterkatalog: Kategorie Name Parameter Schema: Benutzerschema -Name Parameter TablEname: Datenbank Tabelle Name Parameter Spaltenname: Spaltenname
4. Verwendung von GetPrimaryKeys Methoden
Funktionsbeschreibung: Holen Sie sich die primären Schlüsselinformationen der angegebenen Tabelle.
Prototyp:
ResultSet DatabaSemetadata getPrimaryKeys (String -Katalog, String -Schema, String TablName)
Parameterbeschreibung:
Parameterkatalog: Kategorie Name Parameterschema: Benutzerschemas Name Parameter Tablautname: Datenbank Tabelle Name Name
Hinweis: Geben Sie unbedingt den Tabellennamen an, andernfalls hat der Rückgabewert nichts.
5. Methode.
Funktionsbeschreibung: Holen Sie sich die Datentypinformationen der aktuellen Datenbank.
6. Verwendung von GetExportedKeys Methoden
Funktionsbeschreibung: Holen Sie sich Fremdschlüsselinformationen für die angegebene Tabelle.
Parameterbeschreibung:
Parameterkatalog: Kategorie Name Parameterschema: Benutzerschemas Name Parameter Tablautname: Datenbank Tabelle Name Name
Erklären wir diese beiden Parameter anhand von MySQL und Oracle als Beispiele.
Die organisatorische Struktur von Oracle- und MySQL -Daten ist völlig unterschiedlich. In Bezug auf das intuitive Erscheinungsbild sind die Möglichkeiten zum Anbringen von Tischen und Ansichten unterschiedlich. In Oracle wird ein Benutzerverwaltungsmechanismus übernommen. Wenn Tabellen und Ansichten an einen bestimmten Benutzer angeschlossen sind, wird der Benutzer zu einem "Schema" von Oracle. In MySQL werden Tabellen und Ansichten direkt an die Datenbank angeschlossen. Auf diese Weise erhält ein Katalog in Oralce Null und das Erhalten von Schema ist eine Liste von Benutzernamen. Der in MySQL erhaltene Katalog ist die Liste der Datenbanknamens, und das Schema ist null. Die Leser können die folgenden zwei von Databasemetadata bereitgestellten zwei Methoden testen, und sie geben sowohl den Ergebnis -Datentyp zurück.
// Erhalten Sie die Kategoriedefinition
rs = dbmd.getCatalogs ();
// Erhalten Sie die Musterdefinition
rs = dbmd.getschemas ();
Basierend auf der obigen Analyse:
Wenn die Datenbank MySQL ist: Der erste Parameterkatalog kann der Name der Datenbank sein. Wenn dieses Element null ist, handelt es sich um den in der URL -Zeichenfolge angegebenen Datenbanknamen und das zweite Parameterschema füllen Null aus.
Wenn die Datenbank Oralce ist: Der erste Parameterkatalog ist NULL, das zweite Parameterschema wird im Großbuchstaben -Benutzernamen wie "Scott" ausgefüllt. Wenn das Element null ist, ist der Abfragebereich alle Schema -Benutzer.
Rückgabewertanalyse
Der Rückgabewert der Methode GetTables ist ein Ergebnissatz (Ergebnisset). Für die Informationen im Ergebnissatz sind mehr als 20 Elemente JDK1.5 für die relevanten Informationen der Tabelle reserviert. Nicht alle Daten geben diese mehr als 20 Elemente zurück. Wir können oft vier Elemente verwenden:
TABLE_SCHEM: Für Oracle handelt es sich um einen kapitalisierten Benutzernamen und ein Null für MySQL.
TABLE_NAME: Der Name der Tabelle.
Table_cat = null für Oracle und Datenbankname für MySQL.
TABLE_TYPE = Tabellentyp, verwendet für Tabelle und Ansicht basierend auf einem Element im vierten Parameter -Array.
Java.sql.Connection importieren; importieren java.sql.databasemetadata; import Java.sql.drivermanager; Import Java.sql.resultset; importieren Sie java.sql.sqlexception; privat -dataTil.util. url = "JDBC: Oracle: Thin: @LocalHost: 1521: Zhyl"; // Serveradresse:, Portnummer: 1521, Datenbankinstanz Name: Zhyl. private String username = "andatabase"; private String pw = "oracl"; private Verbindung conn = null; // Der Benutzername und das Kennwort werden von Ihnen erstellt. public Connection openconn () {try {class.forname ("oracle.jdbc.driver.oracledriver"); try {conn = driverManager.getConnection (URL, Benutzername, pw) fangen ( {// Todo automatisch generiert fangen blocke.printstacktrace ();} return conn;} public resultSet executeQuery (String SQL) {Dababase db = new Dababase (); Ergebnis Rs = null; Verbindung con = db.openconn (); try {Anweisung sm = con.CreateStatement (); rs = sm.executeQuery (SQL); } catch (SQLEXception e) {// Todo automatisch generierter Fangblock e.printstacktrace (); } return rs;} public void close () {try {conn.close (); } catch (SQLEXception e) {// Todo automatisch generierter Fangblock e.printstacktrace (); }} // Erhalten Sie die Tabellennamen aller Tabellen in der Datenbank und fügen Sie sie der Listenstruktur hinzu. öffentliche Liste GetTablenamelist (Connection Conn) löst SQLEXception {Databasemetadata dbmd = conn.getmetadata (); // Zugriff auf alle Tabellen unter dem aktuellen Benutzer Andatabase Ergebnisset RS = DBMD.Gettables ("Null", "Andatabase", "%", New String [] {"Tabelle", "{] {" Tabelle ", {] {] {] {] {] {{{table }); // system.out.println ("kkkkkkkkk"+dbmd.gettables ("null", "%", "%", neuer String [] {"table"}); liste tablenamelist = new ArrayList (); while (rs.Next () {) {tablenamelist.add (rs.getString ("); Tablenamelist;} // Die Spaltennamen aller Spalten in der Datentabelle abrufen und der Listenstruktur hinzufügen. öffentliche Liste getColumnnamelist (Verbindung conn, String tableName) löst SQLEXception {Databasemetadata dbmd = conn.getmetadata (); resultset rs = dbmd.getColumns (null, "%", "%"); List Columnnamelist = new ArrayList (); while (rs.Next ()) {columnnamelist.add (rs.getString ("column_name"));} return columnnamelist;} public static void main (String s []) verirren sqlexception {dababase dbconn = new dababase (); connection concconn = dbconn.openconn (); fehlgeschlagen "); ElseSystem.out.println (" conn erfolgreich "); try {list tabelist = dbconn.gettablenamelist (conn); // Alle Tabellen des aktuellen Benutzers abrufen // listen tabellist = dbconn.getColumnnamelist (conn", conn "login"; System.out.println (Tablelist.size ()); für (Objektobjekt: Tablelist) {String ss = (String) -Objekt; System.out.println (ss);}} catch (SQLEXception e) {e.printstacktrace ();} schließlich {if (conn!Das obige ist der vollständige Inhalt der Java -Abfrage alle Tabellen der Oracle -Datenbank, Databasemetadata (ausführliche Erläuterung), die Ihnen vom Herausgeber zur Verfügung gestellt wurde. Ich hoffe, jeder unterstützt Wulin.com ~