MySQl Script ausführen

Hallo zusammen,

beim Ausführen einer Anwendung würde ich gerne ein (1 im Moment zum testen ) SQL
Script ausführen. Habe eine Liste in welcher der Pfad zu dem Script ( absolut ) steht.Später sollen da natürlich mehrere *.sql Dateien enthalten sein.

Bevor ich weiter erkläre der nötige Source

        try {
            String[] cmd = new String[]{"cmd", "/c", "start", "mysql.exe", "--user=" + user, 
            "--password=" + pass, " < " + sqlList.get(0)};
            Runtime.getRuntime().exec(cmd);
        } catch (Exception e) {
            e.printStackTrace();
        }        
    }```

sqlList ist eine ArrayList<String> in der die absoluten Pfade stehen ( dem Debugger nach auch richtig. ) und get(0) weil zum testen :).
pass und user sind globale final Strings.

Am liebsten wäre mir, da ich eh den MySQL Connector benutze, eine Methode ala executeScript(...) welche ich aber leider nicht finden kann. Deswegen mein Umweg über die "cmd" (Läuft eh nur unter WIN, deswegen kein Akt ).
Wenn ich das Script über eine *.bat die den gleichen Inhalt hat starte klappt alles.
Ebenso die im Script enthaltenen Befehle im QueryBrowser.
Da das evtl. auch unter Vista laufen soll der Umweg über das cmd Array.Bug #keineAhnung_mehr. Auf jeden Fall im Rest des Programmes klappts auch unter Vista über die Array Methode.

Zu meiner oder meinen Fragen :
    - Wo liegt der Fehler? Im Array oder im Aufruf von Runtime (bei allen meinen Tests
      wird zumindest nie ein Stacktrace ausgegeben. ( Das Script wird aber auch nicht
      richtig ausgeführt, also keine Änderung in der Datenbank )
    - Wie heißt die Methode mit der ich ein Script ausführen kann?
    - Bin gerne für Vorschläge offen wie man das Ganze auf mehrere Scripte
      ausweiten kann( am bsten ohne cmd ) aber Haupsache ein Script läuft erstmal
      durch ( Rest bekomm ich dann alleine hin )

Die Lib des MySQlConnectors heisst mysql-connector-java-5.1.5-bin.jar falls
das noch hilft.

Mfg
mmz

Gibt es einen vernünftigen Grund, warum du dich nicht einfach von Java aus mit dem MySQL-Treiber auf die DB verbindest und dort deine Querys abschickst?

Hi,

ja, da diese Skripte als Update an verschiedene Nutzer gesendet werden und ich nicht
jedesmal das Programm Updaten will nur um die Datenbank auf den neuesren Stand zu bringen.
Daher habe ich eine Überprüfung ob nach dem Update *.sql Dateien im Ordner vorhanden sind und diese sollen dann ausgeführt werden.

Gruß
mmz

Les die Datei doch einfach in dein Programm ein :stuck_out_tongue: .

Klar würde das gehen, ich dachte nur da gäbe es ne elegantere Lösung die mir der
Connector evtl. schon anbieten würde.
Na dann halt einlesen und selber ausführen…:slight_smile:

Dank Dir

Gruß
mmz

Also da ist mein Vorschlag doch um längen elleganter, als so ein gefrickel :stuck_out_tongue: