Blog-Logo auf schwarzem Grund mit dem Schriftzug "Discover What's Next in Tech!"

CSV-Datei mit SQL abfragen unter Verwendung von Java und H2

Manchmal wäre es echt toll, wenn man eine CSV-Datei auf einfache Art mittels SQL abfragen könnte.

Mit der leichtgewichtigen und kostenlosen Open Source Datenbank H2 benötigen wir hierzu nur wenige Zeilen Java-Code.

In einem Standard-Maven-Projekt können wir H2 wie folgt einbinden:

H2-Dependency in der pom.xml:

Zum Einlesen bietet H2 den Befehl CSVREAD, welche als Parameter den Pfad zur CSV-Datei erhält.
Diese muss eine Überschriftenzeile enthalten aus der CSVREAD automatisch die Spaltennamen erzeugt.
Alles andere ist Standard SQL.

Falls man die Daten zunächst in eine Tabelle laden möchte, lässt sich dies wie folgt bewerkstelligen:

Dies bietet sich an, wenn man…

  • die Daten vorher indizieren möchte
  • mehrere Queries auf die Daten absetzen möchte
  • eine JOIN-Query mit anderen Tabellen ausführen möchte.

Nach Erstellung und ggf. Indizierung der Tabelle kann man die Daten wie gewohnt mit SQL abfragen.

Hier der Vollständigkeit wegen noch der Code für outputResultSet, welche das ResultSet dynamisch ausgibt.


Hinweis: Kostenlose Beispiel-CSV-Dateien zum Experimentieren gibt es zum Beispiel hier zum Herunterladen.


Referenzen:


Matthias Fischer

Über MICH

Matthias Fischer hat ein Diplom in Allgemeiner Informatik und ist seit 2006 als Software Entwickler bei doubleSlash tätig. Er hat branchenübergreifende Erfahrungen in IT Projekten und arbeitet mit namhaften Kunden wie z.B. Deutsche Post Direkt GmbH, BMW AG, Bundesdruckerei, ZF AG und Zeppelin Systems zusammen. Matthias hat umfangreiches Knowhow in Spring Boot, Java EE und Angular. Sein Einsatzschwerpunkt liegt vorwiegend in der Backend-Entwicklung, seit einiger Zeit gehört jedoch auch die Frontend-Entwicklung mit Angular zu seinen Tätigkeiten. Matthias begeistert sich außerdem für Softwarequalität, automatisierte Test und die agile Entwicklung.

Alle Beiträge von Matthias Fischer

Mehr erfahren

Weitere Infos auf unserer Website und in unserem Newsletter

Pfeil hoch