Wie der Name schon sagt, verarbeiten Implementierungen dieser Schnittstelle ein java.sql.ResultSet und können Daten in jede beliebige Form konvertieren und verändern, die für die Anwendung benötigt wird oder einfacher zu handhaben ist. Diese Komponente stellt die Implementierungen von ArrayHandler, ArrayListHandler, BeanHandler, BeanListHandler, MapHandler, MapListHandler und ScalarHandler bereit.
Das ResultSetHandler-Interface bietet eine einzige Methode: Object handle(java.sql.ResultSet rs). Somit übernimmt jede ResultSetHandler-Implementierung ein ResultSet als Eingabe, verarbeitet diese und gibt ein Objekt zurück. Da der Rückgabetyp java.lang.Object ist, besteht abgesehen davon, dass keine primitiven Java-Datentypen zurückgegeben werden können, keinerlei Einschränkung der Rückgabe. Sollte keine der genannten sieben Implementierungen die jeweiligen Anforderungen erfüllen, kann man immer noch seine eigene Implementierung schreiben und verwenden.
QueryRunner
Diese Klasse vereinfacht die Ausführung von SQL-Abfragen. Sie übernimmt viele der hiermit verbundenen grundlegenden Abläufe und kann in Kombination mit dem ResultSetHandler den erforderlichen Code erheblich verkürzen. Die QueryRunner-Klasse liefert zwei Konstruktoren. Einer davon ist leer, der andere verwendet eine javax.sql.DataSource als Parameter. In Fällen, in denen keine Datenbank-Verbindung als Parameter für eine Methode bereitgestellt werden muss, wird die dem Konstruktor zugewiesene DataSource dazu verwendet, eine neue Verbindung abzurufen und fortzufahren.
Zu den wichtigen Methoden dieser Klasse zählen die folgenden:
- query(Connection conn, String sql, Object[] params, ResultSetHandler rsh): Diese Methode führt eine select-Abfrage aus, in der die Werte im Object-Array als Ersatzparameter für die Abfrage eingesetzt werden. Die Methode verarbeitet intern das Erstellen und Schließen von einem PreparedStatement und dem ResultSet. Der ResultSetHandler ist für die Konvertierung der Daten aus dem ResultSet in ein einfacheres oder für die jeweilige Anwendung besser geeignetes Format verantwortlich.
- query(String sql, Object[] params, ResultSetHandler rsh): Ähnelt stark der ersten Methode – der einzige Unterschied besteht darin, dass die Verbindung nicht für die Methode bereitgestellt wird, sondern aus der mithilfe der setDataSource-Methode an den Konstruktor oder das Set zugewiesenen DataSource entnommen wird.
- query(Connection conn, String sql, ResultSetHandler rsh): Führt eine select-Abfrage durch, die keine Parameter erwartet.
- update(Connection conn, String sql, Object[] params): Diese Methode wird verwendet, um eine Insert-, Update- oder Delete-Anweisung auszuführen. Das Object-Array beinhaltet die Ersatzparameter für die Anweisung.
Hier ein Beispiel, in dem Daten aus einer Datenbank abgerufen werden. In dem Beispiel wird eine MySQL-Datenbank verwendet. Außerdem muss der MySQL JDBC-Treiber heruntergeladen werden. Die verwendete MySQL-Datenbank wird auf Port 3306 des lokalen Hosts ausgeführt. Der Datenbankname lautet test. Die verwendete Student-Tabelle weist die folgende Struktur auf:
Columns Type
——- —-
StudId int
Name varchar
Neueste Kommentare
Noch keine Kommentare zu Implementierung von DbUtils
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.