- 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:
Kommentar veröffentlichen