Zum Inhalt springen

So erstellen Sie eine Datenbank mit JDBC

jdbc-WörterLernen Sie JDBC und erstellen Sie eine JDBC-Datenbankanwendung „Hello World“. Dieses JDBC-Tutorial kann für alle Produkte mit JDBC-Treibern verwendet werden, einschließlich MySQL, Oracle und Raimas RDM.

Bevor Sie beginnen

Es gibt einige Dinge, die Sie sicherstellen sollten, bevor Sie beginnen. Schauen Sie unten nach:

  • Starten einer Eingabeaufforderung unter Windows oder Linux.
  • JDK 1.6 oder höher installiert und einsatzbereit.
  • Stellen Sie fest, ob das JDK auf Ihrem System 32 oder 64 Bit beträgt. Führen Sie dazu an einer Eingabeaufforderung "java-version" aus. Wenn es sich um 64-Bit handelt, wird dies in der Ausgabe angezeigt. Ansonsten ist es 32-Bit.
  • Ein Texteditor.
  • Ein JDBC-Datenbanktreiber, der in Produkten wie z MySQL, PostgreSQL oder RDM.

Schritte zum Erstellen Ihrer Anwendung

Ein vorgefertigtes Beispiel mit dem JDBC-Treiber von Raima und dem RDM-Datenbankverwaltungssystem finden Sie in der Demos Sektion. Wählen Sie das Windows- oder Linux-Paket „Hello World“ aus, das Ihrem Betriebssystem und JDK (32 oder 64 Bit) entspricht. Sie können die anderen Beispiele nach Abschluss dieses Lernprogramms auswählen, da sie eine immer komplexere Verwendung von Datenbanken über JDBC zeigen.

Installieren Sie das Paket in einem neuen lokalen Verzeichnis. Als Referenz nennen wir dieses Verzeichnis "/ HelloWorld_JDBC". Der vollständige Quellcode für HelloWorldJDBC.java ist sichtbar Hier.

Schritt 1 Öffnen Sie eine Eingabeaufforderung

Wechseln Sie in das Verzeichnis, in dem Sie die Dateien für das Beispiel installiert haben.

Schritt 2 Anzeigen Ihre .java-Datei

Zeigen Sie mit Ihrem Texteditor die Datei „HelloWorldJDBC.java“ an. Alternativ nutzen Sie unsere Online-Kopie.

Schritt 3 Anzeigen Ihre Beispielklasse

Ihre Klasse muss denselben Namen enthalten wie die Java-Datei, die die Klasse enthält. Es sollte wie folgt aussehen:

öffentliche Klasse HelloWorldJDBC {

}}

Diese Klasse ist eine Öffentlichkeit Klasse, da auf sie außerhalb des Bereichs dieser Klasse zugegriffen werden kann. In diesem Beispiel wird alles in dieser Klasse ausgeführt.

Schritt 4 Untersuchen der Hauptmethode

Die Hauptmethode ist der Einstiegspunkt für Ihr Programm. Für dieses einfache Beispiel verwenden wir nur eine Java-Datei. Daher enthält die Klasse die unten gezeigte Hauptmethode. In diesem Beispiel werfen wir das äußerste SQLException (Die Ausnahme bezieht sich auf das Verbindungsobjekt) der Einfachheit halber.
public static void main (String [] args) löst SQLException aus {

}}

Schritt 5 Erstellen und Initialisieren Ihres Verbindungsobjekts

Sie werden Ihre initialisieren Verbindung Objekt, bevor Sie Zugriff auf eine der darin enthaltenen Methoden haben. Sie rufen das Verbindungsobjekt ab, indem Sie eine Methode aus dem aufrufen DriverManager Klasse genannt getConnection (). Die Rückgabe dieser Methode ist Ihr Verbindungsobjekt.

Es ist eine gute Praxis, eine neue zu beginnen Versuchen Block für jedes Objekt, das Sie initialisieren. Wenn Sie mit dem Objekt fertig sind, fügen Sie einfach ein hinzu schließlich Block, der das entsprechende ausführt schließen() Methode, und der äußerste Block enthält Ihre Fang Block, um alle möglichen zu behandeln SQLExceptions. Dies ist mit dem vollständigen Code leichter zu erkennen.

*Hinweis: Die URL ändert sich je nach verwendetem Treiber. In diesem Fall wird der RDM-JDBC-Treiber verwendet.
Verbindung Conn = DriverManager.getConnection ("jdbc: raima: rdm: // local");
Versuchen {

}}
} catch (SQLException-Ausnahme) {

} schließlich {
Conn.close ();
}}

Schritt 6 Erstellen Sie Ihr Anweisungsobjekt

Das neu geschaffene Verbindung Objekt Conn hat eine Methode darin genannt createStatement () das wird a zurückgeben Aussage Objekt. Sie werden dann mit dieser Verbindung zur Datenbank verwenden.
Anweisung Stmt = Conn.createStatement ();
Versuchen {

} schließlich {
Stmt.close ();
}}

Schritt 7 Führen Sie Anweisungen aus, um die Datenbank zu erstellen oder zu öffnen

Verwendung der Aussage Objekt Stmt Sie haben soeben erstellt, dass Sie je nach Art der Anweisung, die Sie ausführen möchten, verschiedene Methoden ausführen können. Zum Beispiel, wenn Sie eine SQL-Anweisung ausführen möchten, wie z "OPEN database_name" oder "DELETE * FROM table_name" Sie würden eine durchführen Statement.execute () Methode. Du kannst sehen ausführen() wird im folgenden Code-Snippet verwendet. In diesem Beispiel erstellen wir die Datenbank programmgesteuert. In diesem Beispiel ist die Datenbank trivial und besteht aus einer einzelnen Tabelle mit dem Namen hallo_tabelle enthält eine einzelne Zeichenspalte mit dem Namen foo. Die Sequenz erstellt eine Datenbank, wenn sie noch nicht vorhanden ist, oder öffnet sie einfach, wenn sie vorhanden ist.

*Hinweis: Diese Datenbank wird programmgesteuert erstellt. Es gibt Tools, mit denen Sie Ihre Datenbank getrennt von Ihrem Programm erstellen können. Sehen Sie sich eine schnelle "So erstellen Sie eine Datenbank mit SQL" Tutorial dazu.

Versuchen {
Stmt.execute ("CREATE DATABASE hello_db");
Stmt.execute ("CREATE TABLE hello_table (f00 char (31))");
Conn.commit (); // Jetzt existiert die Datenbank physisch
} catch (SQLException-Ausnahme) {
// Wir sind hier, wenn eine Datenbank vorhanden ist
Stmt.execute ("OPEN DATABASE hello_db");
}}

Schritt 8 Einfügen einer neuen Zeile mit dem Anweisungsobjekt

Um eine einzelne Zeile in diese Datenbank einzufügen, verwenden wir die Methode executeUpdate (), die für vollständige (unvorbereitete) INSERT-, UPDATE- oder DELETE-Anweisungen verwendet wird. Dies startet implizit a TransaktionDies ist eine Einheit der Aktualisierungsarbeit, die atomar auf die Datenbank angewendet wird. Ein INSERT wird unten gezeigt, aber an dieser Stelle könnten weitere hinzugefügt werden.

Stmt.executeUpdate ("INSERT INTO hello_table VALUES (" Hello World ")");

Schritt 9 Änderungen übernehmen

Damit Ihre Änderungen in der Datenbank abgeschlossen werden, müssen Sie ein Transaktions-Commit durchführen. In JDBC erfolgt dies über eine Methode in der Verbindung Objekt. Die Methode, die wir verwenden werden, ist Connection.commit () Damit werden alle Änderungen abgeschlossen, die Sie während einer Transaktion vorgenommen haben.

Conn.commit (); // Übernimmt alle Änderungen

Schritt 10 Erstellen Ihres Ergebnismengenobjekts (Abrufen von Daten aus der Datenbank)

Wenn Sie in JDBC Daten aus der Datenbank abrufen möchten, führen Sie eine SQL SELECT-Anweisung mit Ihrer aus Aussage Objekt mit einer Ausführungsmethode, die a zurückgibt Ergebnis Objekt setzen. Diese Methode wird aufgerufen Statement.executeQuery (). Dies bedeutet, dass die angegebene Abfrage ausgeführt wird und die Abfrageergebnisse in der angegebenen Ergebnismenge zurückgegeben werden.

ResultSet RS = Stmt.executeQuery ("SELECT * FROM hello_table");
Versuchen {

} schließlich {
RS.close ();
}}

Schritt 11 Zugriff auf die Ergebnismenge

Um auf alle Daten in Ihrem zuzugreifen Ergebnismengemüssen Sie es durchlaufen. Eine Methode wird innerhalb der bereitgestellt Ergebnismenge um zu überprüfen, ob das nächste Ergebnis in der Ergebnismenge ist NULL, was bedeutet, dass keine Daten mehr vorhanden sind. Wenn die Methode ResultSet.next () kehrt zurück WAHR Dann befinden sich Daten in der Datenbank und Sie können sie aus Ihrer Ergebnismenge abrufen.

Um auf die Daten in der Ergebnismenge zugreifen zu können, müssen Sie a ausführen Getter Methode. Es stehen zahlreiche Getter-Methoden zur Verfügung, um den spezifischen Datentyp aus der Ergebnismenge abzurufen. In diesem Beispiel möchten wir eine Zeichenfolge, daher verwenden wir die ResultSet.getString () -Methode, wobei der Parameter die Spalte ist (erste / einzige Spalte ist 1), aus der Sie abrufen.

Schauen Sie sich den folgenden Code an, um ein Beispiel dafür zu sehen, wie dies getan werden kann.
while (RS.next ()! = false)
{
System.out.println (RS.getString (1));
}}

Diese Schleife ruft alle Zeilen in der Ergebnismenge ab. Wenn dieses Beispielprogramm zum ersten Mal ausgeführt wird, gibt es nur eine Zeile. Wenn Sie es mehrmals ausführen, finden Sie für jedes Ausführen eine Zeile.

Schritt 12 Freigabe von Ressourcen

Hier werden Sie alle oben verwendeten Ressourcen freigeben. In diesem Fall sind Ihre Ressourcen jedes Objekt, das Sie oben verwendet haben, und Ihr Objekt Verbindung Objekt, Aussage, und Ergebnismenge Objekte. Für jeden verschachtelten Versuchen Block haben Sie eine schließlich Block, der die entsprechenden ausführt schließen Methode. Diese Anweisungen wurden im obigen Kontext gezeigt, aber hier sind die Bereinigungsaufrufe nacheinander aus dem Code.
} schließlich {
RS.close ();
}}
} schließlich {
Stmt.close ();
}}
} catch (SQLException-Ausnahme) {
System.err.println ("SQLException:" + exception.toString ());
} schließlich {
Conn.close ();
}}

Schritt 13 Final Catch und schließlich Block

Der allerletzte Block enthält beide a Fang Block und a schließlich Block. Das Fang Block bestimmt, was zu tun ist, wenn im obigen Code eine Ausnahme ausgelöst wurde. In diesem Fall reicht es aus, nur die Ausnahme zum Standardausgang anzuzeigen. Das schließlich Der Block wird unabhängig von einer ausgelösten Ausnahme ausgeführt. Hier werden wir unsere freigeben Verbindung Objekt. In diesem Beispiel, wenn Ihr Verbindung Objekt löst aus irgendeinem Grund eine Ausnahme aus, es wird aus der Methode "geworfen". In einer normalen Situation können Sie entweder eine weitere hinzufügen versuche es zu fangen blockieren oder deklarieren Sie dieses Programm als separate Methode und behandeln Sie es an anderer Stelle.

} catch (SQLException-Ausnahme) {
System.err.println ("SQLException:" + exception.toString ());
} schließlich {
Conn.close ();
}}

Schritt 14 Kompilieren Sie Ihre Anwendung

Wenn dein JDK Bei korrekter Installation sollten Sie Zugriff auf den Java Compiler haben, der aufgerufen wird Javac. Damit Ihr Programm erfolgreich kompiliert werden kann, müssen Sie zuerst Ihre festlegen KLASSENPFAD um alle Ihre Klassendateien zu enthalten, einschließlich der von Ihnen verwendeten JAR-Dateien. Da es sich bei dem JDBC-Treiber normalerweise um eine JAR-Datei handelt, müssen Sie diese in Ihre Datei aufnehmen KLASSENPFAD. Wenn Sie die Befehlszeile verwenden, führen Sie ähnliche Vorgänge aus:

Linux: CLASSPATH = $CLASSPATH; {Aktuelles Arbeitsverzeichnis}; {Direkter Pfad zur JAR-Datei}

CLASSPATH = $CLASSPATH; / home / users / kevin / workspace /; / home / users / kevin / workspace / rdmjdbcJDK8-14.jar

*Hinweis: ./ kann verwendet werden, um das aktuelle Arbeitsverzeichnis zu kennzeichnen

Windows: CLASSPATH = %CLASSPATH% setzen: {Aktuelles Arbeitsverzeichnis}: {Direkter Pfad zur JAR-Datei}

setze CLASSPATH = %CLASSPATH%: C: userskevinworkspace: C: userskevinworkspacerdmjdbcJDK8-14.jar

Nachdem Sie Ihre eingerichtet haben KLASSENPFAD Sie sollten bereit sein, zu kompilieren. Dazu müssen Sie das verwenden Javac Compiler. Die Kompilierung ist auf allen Plattformen gleich. Das Format sieht folgendermaßen aus:
javac {main_class.java (Einstiegspunkt zum Programm)}

In diesem Fall würden Sie Folgendes eingeben:

javac HelloWorldJDBC.java

Sie sollten keine Warnungen sehen und nach Abschluss wird eine .class-Datei generiert. Ihr Verzeichnis sollte enthalten:

HelloWorldJDBC.java
HelloWorldJDBC.class

Schritt 15 Ausführen des Programms

Das Ausführen des Programms ist so einfach wie die Eingabe von "java {Name der ausführbaren Datei}". In diesem Fall hätten Sie "Java HelloWorldJDBC" Dies ist der Einstiegspunkt in Ihr Programm. Wenn alles wie erwartet funktioniert, sollte in einer Windows-Eingabeaufforderung Folgendes angezeigt werden:

HelloWorldJDBC

Getan!

Herzliche Glückwünsche! Sie haben gerade Ihre erste JDBC-Anwendung abgeschlossen. Nachdem Sie mit JDBC „auf die Festplatte und zurück“ gegangen sind, werden Sie möglicherweise aufgefordert, einige komplexere Beispiele zu untersuchen. Der Rest der JDBC-Demos wird zu einem schrittweisen Tutorial, das Transaktions-Commits und -Rollbacks sowie Mehrwegebeziehungen zwischen Tabellen enthält. Jede Probe sollte schnell, informativ und vollständig verfügbar sein, wenn Sie fertig sind.