MySQL Dump

Aldimann

Bekanntes Mitglied
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):

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:

Eldorado

Bekanntes Mitglied
Ich gehe mal davon aus das du weiter oben den Treiber lädtst. Wenn du schon vermutest, dass es an executeUpdate liegt, warum machst du es dann nicht mit execute. Ich hab hier mal ein Beispiel, was ich in einem meiner Programme hatte und was dort funktioniert hat:
Java:
try {
      Class.forName("com.mysql.jdbc.Driver");
      Connection c = DriverManager.getConnection("jdbc:mysql://" + serveradresse, username, password);
       Statement st = c.createStatement();
       st.execute("CREATE SCHEMA IF NOT EXISTS `" + datenbankname + "` ;");
       st.close();
       c.close();
} catch (ClassNotFoundException ex) {
} catch (SQLException ex) {
}
 

Aldimann

Bekanntes Mitglied
Also ein Problem hab ich gefunden.

Nachdem die Connection geändert wurde hab habe ich für stmnt
Java:
jdbcConnection.createStatement();
nicht nochmal aufgerufen.

Habe ich jetzt im Code und oben ausgebessert.

Trotzdem bleibt das Problem, dass ich das Script nicht ausführen kann. Habe jetzt wie Eldorado gesagt hat, einfach mal execute und executeUpdate ausprobiert. Leider ohne Erfolg:(
 

Eldorado

Bekanntes Mitglied
Oft ein Fehler: Die Hochkommata(oder wie man diese Striche nennt ;)) vor und hinter dem Datenbank-Namen fehlen. Kopiere dir bitte generell mal meinen Code und probiere es mit dem, ob er da auch mekkert. Dann können wir das vllt ein bisschen eingrenzen.Aber probier erst Punkt 1..
 

Aldimann

Bekanntes Mitglied
Also habe gerade nochmal mit jemandem drüber gesprochen.

Dabei ist rausgekommen, dass sehr wahrscheinlich das Problem darin besteht, dass ich mehrere Create Statements hintereinander (in einem String) ausführen möchte.

Diese These wurde verstärkt dadurch, dass die Statements sich alleine ausführen lassen nur bei mehreren geht es nicht.

Ist es also überhaupt möglich diese Statements zusammen auszuführen oder muss ich das ganze splitten? :/


Vielen Dank schonmal!
 

Eldorado

Bekanntes Mitglied
Aber dann müsste ja wenigstens die Datenbank erstellt werden, da du da ja nur einen einzelnen Befehl ausführst, Zu Thema ausführen von mehreren SQL-Befehlen: Mach doch einfach ein String-Array in dem du deine Befehle hast und iteriere dann drüber:
Java:
for ( int i = 0; i < befehlsArray.length; i ++ ) {
      stmnt.execute(befehlsArray[i]);
}
stmnt.close
 
Zuletzt bearbeitet:

Aldimann

Bekanntes Mitglied
Oh sorry, dass hab ich vergessen zu erwähnen!

Die DB erstellt er ohne Probleme, das was danach kommt funktioniert leider nicht.

Deine Lösung ist soweit gut, Problem ist aber, dass in meinem Fall alle Statements in einer File stehen die ich auslese.

Das heißt um einzeln über diese Dinger laufen zu können muss ich erst wieder alles splitten und wenn es noch irgendwie anders geht, würde ich das gern vermeiden.
 

Eldorado

Bekanntes Mitglied
Ich habe mir grade nochmal angeschaut, wo es ja so aussieht, dass 1 Zeile = 1 Befehl ist. Dann musst du dein Programm eig nur so ändern und ergänzen:
Java:
Arraylist<String> befehle = new Arraylist<String>();//ergänzen
while ((line = br.readLine())!= null) {//ändern
                befehle.add(line);
}
//und dann unten:
for(String befehl : befehle){
  stmnt.execute(befehl);
}
stmnt.close
Code ist ungetestet und ohne IDE geschrieben, von daher garantiere ich für nichts. Aber ich denke es sollte dir eine Idee liefern wie du es lösen könntest.
 

Aldimann

Bekanntes Mitglied
Ne das war leider nicht der fall.

Ich hab jetzt einfach so gelöst.

Java:
String[] queries = query.toString().split(";");

Jedes create Statement wurde bei mir mit einem ; beendet daher das ;).

Dann bin ich per for-schleife über alle Arrayteile gelaufen und hab sie ausgeführt und das letzte Element ausgelassen, denn das letzte Element ist einfach n leerer String.

Vielen Dank für deine Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P MySQL Java Programm als Dienst MySQL Dump zurück spielen Datenbankprogrammierung 4
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben