Databases Reference
In-Depth Information
18.8
Kurz vor Schluss
Auch wenn wir die umfangreiche JDBC-API noch nicht erschöpfend behandelt
haben, kennen wir bereits ihre wichtigsten Eigenschaften. Aus den vielfältigen
Möglichkeiten, die JDBC bietet, seien noch einige erwähnt:
Scroll Cursor: Objekte vom Typ ResultSet verwenden intern Cursor, die nur
um jeweils genau eine Position nach vorne bewegt werden können. Gelegentlich
möchten wir aber - aus welchen Gründen auch immer - den letzten Datensatz
der Ergebnismenge haben oder uns eine Position zurück in der Ergebnismenge
bewegen. Diesen Komfort bieten uns Scroll-Cursor, die unsere Objekte vom Typ
ResultSet auch nutzen können, wenn wir den Bedarf beim Erzeugen des Ob-
jektes vom Typ Statement oder PreparedStatement anmelden:
Statement statement = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
Unseren Cursor können wir jetzt auf eine beliebige Stelle im Ergebnis setzen. Im
folgenden Beispiel setzen wir ihn auf den vorletzten Datensatz:
String select = "select name from reihen";
ResultSet results = statement.executeQuery(select);
results.last();
results.previous();
Damit wir Scroll-Cursor überhaupt nutzen können, muss unser RDBMS sie auch
unterstützen. Außerdem bekommen wir diesen Komfort nicht kostenlos: Scroll-
Cursor sind ressourcenintensiver. Weil die vollständige Ergebnismenge sofort be-
kannt sein muss, geben uns Scroll-Cursor auch nur eine Momentaufnahme des
Datenbestandes. Die Daten sind möglicherweise nicht mehr aktuell, wenn unsere
Java-Anwendung sie bekommt.
Large Objects: Wenn wir eine Tabelle mit der Anweisung
create table pictures(
id int primary key,
image blob
)
anlegen, dann stellen uns die meisten RDBMS keine Möglichkeit zur Verfü-
gung, um mit einer einfachen insert -Anweisung Bilder in Form von Blobs
(siehe Abschnitt 5.16) in die Tabelle einzufügen. In JDBC bietet der Typ
PreparedStatement die Methode setBinaryStream , der wir einen Stream
übergeben können, der eine Datei referenziert. Beim Einfügen des Datensatzes
werden die Daten dann aus der Datei gelesen und die Tabelle transportiert.
Search WWH ::




Custom Search