Sonntag, September 17, 2006

JDBC vom sun Java-Kurs

Programming Tasks

  • Instanze vom JDBC-Treiber erzeugen

  • JDBC-Treiber mittels jdbc.driver laden

  • Treiber registrieren

  • eine Datenbank auswählen

  • Datenbankverbindung öffnen

  • eine Abfrage ausführen

  • Ergebnisse entgegennehemen

  • alles wieder abbauen



Das java.sql Paket

  • java.sql.Driver

  • java.sql.Connection

  • java.sql.Statement

  • java.sql.PreparedStatement - Prozeduren auf Server ausführen

  • java.sql.CallableStatement - ???

  • java.sql.ResultSet

  • java.sql.ResultSetMetaData

  • java.sql.DatabaseMetaData



kann den Treiber auch beim Aufruf angeben:
java -D jdbc.drivers=com....driver myApp

Query ausführen
stmt = connection.createStatement();
int count = stmt.executeUpdate("INSERT, UPDATE oder DELETE ...");
-> Rückgabe ist anzahl der geänderten Zeilen
ResultSet rs = stmt.executeQuery("SELECT ...");
-> ab JDBC2 kann ich auch rückwärts gehen, ist aber nicht bei allen Treibern implementiert
-> schneller ist, das ganze ResultSet in einen Vektor einzulesen und auf diesem zu arbeiten - rs.getXXX greift immer wieder auf die Datenbank zu

java.sql.PreparedStatement stmt = connection.preparedStatement("UPDATE t set m = ? WHERE x = ?");
-> ? von 1 an durchnummeriert
stmt.setString(1, "Album");
for ( i ...) stmt.setInt(2, i);
-> wenn ein Query öfters gebraucht wird schneller, als wenn immer wieder über den Konstruktor erzeugt wird.

[update]
Habe dies in meinem Programm zum manipulieren der SonicStage-Database verwendet. Dort finden sich im Code noch einige Kommentare von Fettnäpfchen in die ich gedrehten war. Z.B. wie ich Zahlen als Spalten-Name im SQL-Kommando angeben muss.

Keine Kommentare: