Hallo zusammen,
ich hab ein SQL Dump der mir im Prinzip nur ein Datenbankmodell erstellen soll, also nur die Tables anlegen mit ihren Attributen etc.
Die Dumps wurden einmal in PhpMyAdmin erstellt und um dort Fehler auszuschließen auch nochmal mit Squirell SQL. In beiden Situationen meckert er über fehler in der Syntax obwohl sich die Scripte in den beiden Programmen problemlos wieder einspielen lassen.
Danach habe ich nur einen Teil des Scripts ausführen lassen, das hat Java ohne Probleme gemacht, allerdings wird in PhpMyAdmin und Squriell SQL der Table nicht angezeigt. Führe ich das ganze in Java nochmal aus, meckert er das der Table schon da ist. Host und Tabelle passen eigentlich.
Könnte das Problem evtl. daran liegen, dass ich executeUpdate ausführe und in der JavaDoc nur steht das damit nur INSERT, UPDATE oder DELETE geht?
Nochmal zur vorgehensweise (Das auslesen der SQL-Datei und zwischenspeichern in einen StringBuilder):
Exceptions etc. hab ich mal ausgebaut.
ich hab ein SQL Dump der mir im Prinzip nur ein Datenbankmodell erstellen soll, also nur die Tables anlegen mit ihren Attributen etc.
Die Dumps wurden einmal in PhpMyAdmin erstellt und um dort Fehler auszuschließen auch nochmal mit Squirell SQL. In beiden Situationen meckert er über fehler in der Syntax obwohl sich die Scripte in den beiden Programmen problemlos wieder einspielen lassen.
Danach habe ich nur einen Teil des Scripts ausführen lassen, das hat Java ohne Probleme gemacht, allerdings wird in PhpMyAdmin und Squriell SQL der Table nicht angezeigt. Führe ich das ganze in Java nochmal aus, meckert er das der Table schon da ist. Host und Tabelle passen eigentlich.
Könnte das Problem evtl. daran liegen, dass ich executeUpdate ausführe und in der JavaDoc nur steht das damit nur INSERT, UPDATE oder DELETE geht?
Nochmal zur vorgehensweise (Das auslesen der SQL-Datei und zwischenspeichern in einen StringBuilder):
Java:
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder query = new StringBuilder();
String line = "";
while ((line = br.readLine())!= null) {
query.append(line);
query.append("\n");
}
// Closen der br, isr, fis etc.
Connection jdbcConnection;
Statement stmnt = null;
jdbcConnection = DriverManager.getConnection(
"jdbc:mysql://"+hostname+"/mysql?useUnicode=true&characterEncoding=UTF-8&sessionVariables=FOREIGN_KEY_CHECKS=0", username,
password);
stmnt = jdbcConnection.createStatement();
stmnt.executeUpdate("create database if not exists "+dbname);
jdbcConnection = DriverManager.getConnection(
"jdbc:mysql://"+hostname+"/"+dbname+"?useUnicode=true&characterEncoding=UTF-8&sessionVariables=FOREIGN_KEY_CHECKS=0", username,
password);
stmnt = jdbcConnection.createStatement();
stmnt.execute(query.toString());
stmnt.close();
Exceptions etc. hab ich mal ausgebaut.
Zuletzt bearbeitet: