JDBC -Verbindungsdatenbank
Die Programmierung, die eine JDBC -Verbindung herstellt, ist recht einfach. Hier sind vier einfache Schritte:
Importieren von JDBC -Paket:
Die Import -Anweisung teilt dem Java -Compiler mit, wo er die Referenzen im Code findet und die Klasse zu Beginn Ihres Quellcodes platziert.
Mithilfe des Standard -JDBC -Pakets können Sie Daten aus SQL -Tabellen ausgewählt, eingefügt, aktualisiert und löschen, wobei die folgenden Importe zu Ihrem Quellcode hinzugefügt werden:
Java.sql.* importieren; // für Standard JDBC ProgramsImport Java.math.*; // für BigDecimal und Biginteger Support
Registrieren Sie den JDBC -Treiber:
Bevor Sie es verwenden, müssen Sie Ihren Treiber im Programm registrieren. Ein registrierter Treiber ist ein Implementierungsprozess, bei dem die Klassendatei des Oracle -Treibers in den Speicher geladen wird, damit er als JDBC -Schnittstelle verwendet werden kann.
Sie müssen diese Registrierung nur einmal in Ihrem Programm durchführen. Ein Fahrer kann auf zwei Arten registriert werden.
Methode (i) - class.forname ():
Die häufigste Methode bei der Registrierung eines Treibers besteht darin, die Methode von Java Class.Forname () zu verwenden, um die Klassendateien des Fahrers dynamisch in Speicher zu laden, und registriert sie automatisch. Dieser Ansatz ist wünschenswert, da der Treiber die Konfiguration für eine einfache Portabilität registrieren kann.
Das folgende Beispiel verwendet Class.Forname (), um einen Oracle -Treiber zu registrieren:
try {class.forname ("oracle.jdbc.driver.oracledriver");} catch (classNotFoundException ex) {System.out.println ("Fehler: Treiberklasse nicht laden!"); System.exit (1);}Sie können die GetInstance () -Methode verwenden, um inkompatible JVMs zu beheben. Zwei zusätzliche Ausnahmen werden jedoch wie folgt geschrieben:
try {class.forname ("oracle.jdbc.driver.oracledriver"). newInstance ();} catch (classNotFoundException ex) {System.out.println ("Fehler: Treiberklasse nicht laden!"); System.exit (1); catch (illegalAccessexception ex) {System.out.println ("Fehler: Zugriff auf Problem beim Laden!"); System.exit (2); catch (InstantiationException ex) {System.out.println ("Fehler: Treiber kann nicht instanziieren!"); System.exit (3);} Methode (ii) - DriverManager.registerDriver ():
Die zweite Möglichkeit, einen Treiber zu registrieren, besteht darin, die Methode staticDriverManager.registerDriver () zu verwenden.
Wenn Sie ein inkompatibler JDK JVM verwenden, bietet Microsoft beispielsweise eine Methode mit RegisterDriver ().
Das folgende Beispiel verwendet RegisterDriver (), um den Oracle -Treiber zu registrieren:
Versuchen Sie {Treiber mydriver = new oracle.jdbc.driver.oracledriver (); TriverManager.registerDriver (mydriver);} catch (classNotFoundException ex) {System.out.println ("Fehler: Treiberklasse kann nicht geladen werden!"); System.exit (1);} Datenbank -URL -Formulierung:
Beim Laden des Treibers können Sie eine Verbindung im Programm mithilfe der Methode triverManager.getConnection () herstellen. Listen wir für einfache Referenzen drei überlastete DriverManager.getConnection () -Methoden auf:
Hier erfordert jedes Formular eine Datenbank -URL. Die URL der Datenbank zeigt auf die Datenbankadresse.
Die Entwicklung einer Datenbank -URL wird am häufigsten zur Herstellung von Verbindungen verwendet.
In der folgenden Tabelle werden die beliebten JDBC -Treibernamen und Datenbank -URLs aufgeführt.
RDBMSJDBC -Treibername URL -Format
Mysql com.mysql.jdbc.driver jdbc: mysql: // hostname/databaseNameoracle oracle.jdbc.driver Nummer/DatabasenameSybase com.sybase.jdbc.sybdriver jdbc: sybase: td
Alle hervorgehobenen Teile im URL -Format sind statisch, und nur die verbleibenden Teile müssen gemäß den Datenbankeinstellungen geändert werden.
Erstellen eines Verbindungsobjekts: Verwenden Sie den Benutzernamen und das Kennwort der Datenbank -URL:
Die folgenden drei Formen der Methode von TriverManager.getConnection () werden verwendet, um ein Verbindungsobjekt zu erstellen. Die häufigste Form von GetConnection () erfordert das Übergeben einer Datenbank -URL, eines Benutzernamens und eines Passworts:
Der Wert des Datenbanknamens für die URL -Datenbank: Unter der Annahme, dass Sie den Dünn -Treiber von Oracle verwenden, müssen Sie einen Host angeben: Port.
Angenommen, es gibt einen Host -TCP/IP -Adresse 192.0.0.1, und der Hostname und der Oracle -Listener sind auf Port 1521 konfiguriert, der Datenbankname ist EMP, und dann lautet die vollständige Datenbank -URL:
JDBC: Oracle: Thin: @amrood: 1521: EMP
Jetzt muss die entsprechende Benutzername und Passwort und die GetConnection () -Methode aufgerufen werden, um ein Verbindungsobjekt wie unten gezeigt zu erhalten:
String url = "jdbc: oracle: dünn: @amrood: 1521: emp"; String user = "userername"; String pass = "Passwort" Verbindung conn = driverManager.getConnection (URL, Benutzer, Pass);
Verwenden Sie nur eine Datenbank -URL:
Die zweite Form der Methode triverManager.getConnection () erfordert nur eine Datenbank -URL:
TRAVERMANAGER.getConnection (String -URL);
In diesem Fall hat die URL der Datenbank, einschließlich des Benutzernamens und des Passworts, das folgende allgemeine Formular:
JDBC: Oracle: Treiber: Benutzername/Passwort@Datenbank
Die obige Verbindung kann also wie folgt erstellt werden:
String url = "JDBC: Oracle: Thin: Benutzername/Passwort@Amrood: 1521: EMP"; Verbindung conn = driverManager.getConnection (URL);
Verwenden Sie die Datenbank -URL und ein Eigenschaftenobjekt:
Die dritte Form der Methode triverManager.getConnection () erfordert eine Datenbank -URL und ein Eigenschaftenobjekt:
TriverManager.getConnection (String -URL, Eigenschaften info);
Das Eigenschaftenobjekt speichert einen Satz von Schlüsselwort-Wertpaaren. Es wird verwendet, um die Methode GetConnection () aufzurufen, wenn das Treiberattribut an den Fahrer weitergegeben wird.
Verwenden Sie den folgenden Code, um dieselbe Verbindung durch das vorherige Beispiel herzustellen:
Java.util importieren.
Schließen Sie die JDBC -Verbindung:
Am Ende des JDBC -Programms müssen alle Verbindungen zur Datenbank ausdrücklich geschlossen werden, um jede Datenbanksitzung zu beenden. Wenn Sie jedoch vergessen, schließt der Java -Müllsammler die Verbindung und löscht die abgestandenen Objekte.
Es ist eine sehr schlechte Programmiergewohnheit, sich auf die Müllsammlung, insbesondere in der Datenbankprogrammierung, zu verlassen. Es sollte immer die Gewohnheit sein, die mit dem Verbindungsobjekt zugeordnete Close () -Methode zu schließen.
Um sicherzustellen, dass die Verbindung geschlossen ist, kann sie in schließlich blockieren im Code ausgeführt werden. Schließlich werden Blöcke ausgeführt, unabhängig davon, ob oder nicht.
Um die oben geöffnete Verbindung zu schließen, sollte die Methode close () wie folgt aufgerufen werden:
conn.close ();
Schließen Sie explizit Verbindungen zu DBMs, um Ressourcen zu sparen.
Erstellen Sie eine JDBC -Anwendung:
Am Aufbau einer JDBC -Anwendung sind sechs Schritte beteiligt:
Beispielcode:
Dieses Beispiel kann als Vorlage verwendet werden, wenn Sie eine JDBC -Anwendung erstellen müssen.
Dieser Beispielcode wird basierend auf der Umgebung und Datenbankinstallation im vorherigen Kapitel geschrieben.
Kopieren Sie das folgende Beispiel FirstExample.java, kompilieren Sie und laufen Sie wie folgt aus:
// Schritt 1. Importieren Sie die erforderlichen Paketesimport java.sql. statische endgültige Zeichenfolge db_url = "jdbc: mysql: // localhost/emp"; // Datenbankanmeldeinformationen static Final String user = "Benutzername"; statische endgültige String -Pass = "Passwort"; public static void main (String [] args) {Verbindung conn = null; Aussage STMT = NULL; try {// Schritt 2: Registrieren Sie die JDBC -Treiberklasse.Forname ("com.mysql.jdbc.driver"); // Schritt 3: Öffnen Sie ein Verbindungssystem.out.println ("Verbindung zu Datenbank herstellen ..."); conn = driverManager.getConnection (db_url, Benutzer, Pass); // Schritt 4: Führen Sie ein Query -System aus. STMT = Conn.CreateStatement (); String SQL; SQL = "ID, zuerst, zuletzt, Alter von Mitarbeitern auswählen"; ResultSet rs = stmt.executeQuery (SQL); // Schritt 5: Daten aus der Ergebnismenge extrahieren (rs.Next ()) {// nach Spaltenname int id = rs.getint ("id"); int age = rs.getInt ("Alter"); String first = rs.getString ("First"); String last = rs.getString ("last"); // Werte system.out.print ("id:" + id); System.out.print (", Alter:" + Alter); System.out.print (", zuerst:" + zuerst); System.out.println (", last:" + last); } // Schritt 6: Reinigungsumgebung rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// Fehler für JDBC SE.printstacktrace () verwandeln; } catch (Ausnahme e) {// Fehler für class.Forname e.printstacktrace (); } endlich {// Block Block Block, um Ressourcen zu schließen, versuche {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // nichts, was wir versuchen können {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // End endlich try} // Ende try system.out.println ("Auf Wiedersehen!"); } // Ende Main} // FirstExample beendenKompilieren wir nun das obige Beispiel wie folgt:
C:> Javac FirstExample.java
Beim ersten Beispiel werden die folgenden Ergebnisse erzielt:
C:> Java FirstExample
Verbindung zur Datenbank verbinden ... Erstellen von Anweisung ... ID: 100, Alter: 18, zuerst: Zara, zuletzt: Aliid: 101, Alter: 25, Erstens: Mahnaz, zuletzt: Fatmaid: 102, Alter: 30, zuerst: Zaid, zuletzt: Khanid: 103, Alter: 28, Sumit, zuletzt: Mital