HSQLDB .sql Script Aufruf über Java

koche82

Mitglied
Hallo zusammen,

ich benötige mal wieder eure Hilfe. ich habe ein Programm entworfen, welches beim Aufruf eine Datenbank erzeugt und die Tabellen für den Input generiert. Durch die Vielzahl der vielen Tabellen wächst dadurch mein SourceCode extrem an. Meine Idee wäre es nun gewesen, dass ich die SQL Statements in ein .sql Script exportiere und diese dann im Java-Programm aufruf. Leider scheint es hierzu keine passende Lösung zu geben und ich müsst stattdessen das Script eigenständig lesen und die Befehle selbst ausführen, ist dies richtig?

zur Info
Für MySQL scheint es hierzu einen ScriptRunner zu geben:
http://www.mkyong.com/jdbc/how-to-run-a-mysql-script-using-java/
 
und anhand welcher Argumente möchtest du diese These belegen?
Zur Info:
- Die Datenbank muss nicht persistent bestehen bleiben, deswegen nutze ich hier auch die HSQLDB.
- Es handelt sich um keine Kundendatenbank, in welcher ich 2 Tabellen habe und "nur" Name und Adresse speichere. Mittlerweile besitze ich in dieser Datenbank mehr als 25 Tabellen und einige Views. Da jede Tabelle separat angelegt/gedropped werden muss und einige noch Indizes haben, wächst der Source-Code natürlich auch entsprechend an.

Ganz so doof bin ich sicher nicht, dass ich jeden Update und Insert Befehl als eigene Anweisung durchführe.
 
Eine dynamische Anzahl an Tabellen macht in der Regel keinen Sinn.

Sag mir doch mal wozu man sowas braucht. Dann habe ich auch wieder was gelernt...
 
Ich habe auch nicht gesagt, dass diese Tabellen dynamisch sind. Alle Tabellen sind relational angelegt und aufgrund der 1:n Beziehungen notwendig.
Die Datenbank wird von mir aufgebaut und mit Dateninhalt befüllt und anschließend auf Konsistenz geprüft, danach kann sie wieder gelöscht werden.
 
Mittlerweile besitze ich in dieser Datenbank mehr als 25 Tabellen und einige Views. Da jede Tabelle separat angelegt/gedropped werden muss und einige noch Indizes haben, ...
Warum muss jede Tabelle separat angelegt bzw. gelöscht werden? Du könntest doch alles CREATE/DROP TABLE Statements (und auch das anlegen von Keys, Indizes usw.) in eine sql Datei auslagern und diese bei Start bzw. Ende ausführen?
Dann gibt es in deinen Code nur noch die Zugriffe auf die Daten.

Ich habe auch nicht gesagt, dass diese Tabellen dynamisch sind. Alle Tabellen sind relational angelegt und aufgrund der 1:n Beziehungen notwendig.
Es hat sich anhand des "mittlerweile besitze ich in dieser Datenbank" so angehört, wie wenn immer wieder neue Tabellen hinzukommen oder welche wegfallen.

Die Datenbank wird von mir aufgebaut und mit Dateninhalt befüllt und anschließend auf Konsistenz geprüft, danach kann sie wieder gelöscht werden.
Wie schon oben gesagt: Auslagern von CREATE TABLE bzw. DROP TABLE Statements (usw.) in eine .sql Datei und die bei Start ausführen lassen. Auch die Dateninhalte die bei Beginn in den Tabellen sein soll könntest du per sql Datei eintragen lassen.
 

Zurück
Oben