SQL in einer Schleife

mroemi

Mitglied
Java:
	           con = DriverManager.getConnection("jdbc:jpmdbc:http://www.xxx.de:80/jpmdbc.php?xxxx", connProperties);
	           
	           try {
	       		BufferedReader in = new BufferedReader(new FileReader("test.txt"));
	       		String zeile = null;

	            Statement statement = con.createStatement();
	            //zeile = "insert into `mr_bier2` (`id` ,`brauerei` ,`bezeichnung` ,`zusatz` ,`web` ,`sponsor` ,`region` ,`barcode` ,`getrunken`, `art`, `alc`, `vorrat`, `jahr`) values ('1197', 'Alsfelder', 'Bez', 'Zusatz', 'alsfelder.de', '', '0', '12345','0', 'Sonstiges', '0.00','1','2013')";
	            //statement.executeUpdate(zeile);
		       		while ((zeile = in.readLine()) != null) {
		       			System.out.println("Gelesene Zeile: " + zeile);

		       			zeile.replaceAll("\\n", "");
		       			zeile.replaceAll("\\r", "");
		       			statement.executeUpdate(zeile);
		       		}
		       	} catch (IOException e) {
		       		e.printStackTrace();
		       	}

Ich habe in einem File mehrere SQL-Anweisungen gesammelt und möchte diese nun einmal durchlaufen und an die Datenbank übergeben.
Wenn ich den gleichen SQL-String einzeln übergebe, funzt alles.
Lese ich aber den String erst aus und will Ihn dann übergeben, bekomme ich gesagt das ich einen Fehler in meinem Statement habe.
Ich habe den Zeilenumbruch im verdacht, bekomme es aber nicht gelöst.

Hat jemand eine Idee?

Danke

Römi
 

turtle

Top Contributor
Nun, ich würde zunächst
Java:
boolean execute(String sql)
ausführen, da es ein insert ist und somit kein Update.
Zweitens würde ich PreparedStatements verwenden, da genau dafür wurden diese ja entwickelt. So kann die DB einmal den SQL-Befehl vorbereiten (intern kompilieren) und dann mit verschiedenen Parameter-Werten immer wieder ausführen.
Java:
		String sql = "insert into mr_bier2 (id ,brauerei ,bezeichnung ,zusatz ,web ,sponsor ,region ,barcode ,getrunken,art,alc,vorrat,jahr) "
				+ "values (?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?,?,?)";
		Connection con =...;
			PreparedStatement prepareStatement = con.prepareStatement(sql);
			prepareStatement.setString(1, "1197");
			prepareStatement.setString(2, "Alsfelder");
			//... Weitere Attribute
			prepareStatement.execute();
Und zum Schluss würde ich das Datenmodell prüfen, da alle Atribute Strings zu sein scheinen, und das macht mir bei einigen keinen Sinn.
 
Zuletzt bearbeitet:

mroemi

Mitglied
Oki, am Datenmodell muss ich noch schrauben ... keine Frage.

Aber ... im File stehen nicht nur insert, sondern auch update und delete.
Und ... das Ziel ist eine Datenbank im Web.
ich muss mal checken ob jpmdbc mit deinem Vorschlag zurecht kommt :reflect:

Ich sage Bescheid.

Danke

Römi
 
Zuletzt bearbeitet:

mroemi

Mitglied
Das mit dem PreparedStatements hat nicht gefunzt.
Dafür aber habe ich daraus mein Vorgehen ableiten können und das klappt nun.

Danke!!
 

turtle

Top Contributor
Erst einmal schön, das es nun klappt.

Aber...
Das mit dem PreparedStatements hat nicht gefunzt.
Das ist natürlich keine sinnvolle Beschreibung. Stürzt das Programm ab, gibt es eine Exception bei Ausführung oder kompiliert etwas nicht, oder, oder...

Also, wenn du hier noch Unterstützung benötigst, musst du genauer beschreiben, was nicht funzt;)

Eigentlich werden PreparedStatements häufig eingesetzt, zumal diese immun gegen SQL-Injection-Angriffe sind. Ich finde sie auch um Welten lesbarer als das Zusammenstückeln von String-Teilen zu einem gesamten SQL-Befehl.

PS: Es gibt auch den Danke-Button im Forum falls ein Beitrag für dich sinnvoll war:idea:
 
Zuletzt bearbeitet:

mroemi

Mitglied
Sodele, mal mehr dazu. Ich verwende jpmdbc und der schleust mein SQL per PHP in die Web-DB.
Damit erzähle ich vermutlich nichts neues.

Soweit ich gelesen habe, kann man aber nicht wirklich alles drüber schicken. Für größere Mengen an Daten ist das ganze auch irgendwo zu langsam. Etwas was lokal funktioniert, wird in Verbindung mit der Web-DB nicht vollständig angezeigt/abgearbeitet.

Daher habe ich nun meine DB auch lokal und schreibe meine Änderungen in einem File mit.
Habe ich fertig ;), vollziehe ich die Statements in der Web-DB nach und gut ist.

Dazu lese ich den File zeilenweise aus, baue das Statement und schicke es ab.
Da es dabei ständig zu Fehlermeldungen und Abbrüche gekommen ist, habe ich nun zwischen den einzelnen Statements ein klitzekleines Wait eingebaut. Nun klappt alles wie gewollt.

Vor SQL-Injection-Angriffe fürchte ich mich nicht allzu sehr ... es ist erst mal nur eine private Spielerei.
Wenn erst das ganze Java-Gedöns funzt wie gewünscht, ich es einigermaßen verstanden habe und der Code auch mal vorgezeigt werden kann, dann kümmere ich mich um das SQL.


"Danke" klicke ich natürlich gerne.
 

turtle

Top Contributor
Daher habe ich nun meine DB auch lokal
Das finde ich sehr gut!

Da es dabei ständig zu Fehlermeldungen und Abbrüche gekommen ist, habe ich nun zwischen den einzelnen Statements ein klitzekleines Wait eingebaut.
Das finde ich nicht so gut;)

Normal sollte es möglich sein, einer DB mehrere tausend Befehle pro Sekunde zu schicken und es ist Aufgabe der DB diese entsprechend abzuarbeiten (vielleicht wird die DB bei hoher Last langsamer sollte aber definitiv NICHT zu Fehlern führen).

Es ist definitiv falsch und zeigt ein Problem, wenn sich ein DB-Client (dein Programm) um Timing-Dinge kümmern muss. Das ist ja überhaupt nicht testbar, wenn da mehrere Tausend Clients gleichzeitig mit der DB arbeiten wollen:shock:

Ich hoffe, alles dies tust du auf deiner lokalen Datenbank zum Test?

PS:Ich verwende häufig H2 oder Derby als lokale DB.
 
Zuletzt bearbeitet:

mroemi

Mitglied
In diese DB schreibt nur EINER ... :hihi:

Und jpmdbc spricht eine php-Seite an um das Statement abzusetzen und die Antwort zurückzugeben.
Mir ist z.Z. keine andere Variante bekannt. Mein Web-Space ist nun mal 08/15 und die Web-MySQL für den Zugriff von außen gesperrt.

Lokal (und ich teste alles lokal) habe ich ebenfalls eine MySQL am Start.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
Khaled-Abo Ziffern unterscheiden mittels einer For-Schleife Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
F Abbruchbedingung einer For-Schleife Java Basics - Anfänger-Themen 5
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
X Wie Rechnet man in einer For-Schleife *? Java Basics - Anfänger-Themen 3
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
S Wie verwende ich ne aus einer Schleife nach der Schleife? Java Basics - Anfänger-Themen 9
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
V for-Schleife in einer void Methode Java Basics - Anfänger-Themen 3
MiMa abbruch innerhalb einer Rekursiven Schleife Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
L Anonyme Methode in einer ForEach-Schleife Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
P ergebnis einer schleife wiedergeben Java Basics - Anfänger-Themen 8
L Frage zum Doppelpunkt in einer for Schleife Java Basics - Anfänger-Themen 4
G Frage zu einer For- Schleife Java Basics - Anfänger-Themen 3
J Vereinfachen einer Schleife Java Basics - Anfänger-Themen 2
A Variablen aus einer Schleife gezielt auslesen Java Basics - Anfänger-Themen 11
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
J Prüfung einer Schleife mit Eingabefeldern Java Basics - Anfänger-Themen 3
J Methoden Wert im Block einer for-Schleife wird nicht aktualisiert Java Basics - Anfänger-Themen 9
S Unbeschaeftigten Thread in einer Schleife schlafen legen? Schlechter Stil? Java Basics - Anfänger-Themen 7
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
B if-else in einer schleife Java Basics - Anfänger-Themen 14
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
M BufferdReader in einer Schleife ... Java Basics - Anfänger-Themen 14
D Summe von Eingaben in einer for Schleife Java Basics - Anfänger-Themen 4
N Nächste Frage aufrufen in einer Schleife Java Basics - Anfänger-Themen 8
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
X Variablen Variablen erzeugen in einer Schleife? Java Basics - Anfänger-Themen 6
B Wert einer while-Schleife nach Abarbeitung Java Basics - Anfänger-Themen 2
Killerjo96 Erste Schritte Problem mit dem Sichern einer If Schleife Java Basics - Anfänger-Themen 5
C Befehl zum Verlassen einer Schleife Java Basics - Anfänger-Themen 27
O Ungleiche Objekte in einer Schleife erstellen Java Basics - Anfänger-Themen 3
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
V Problem mit einer While Schleife Java Basics - Anfänger-Themen 8
L Datei verschieben mit einer Schleife Java Basics - Anfänger-Themen 17
J In einer for Schleife zu einer Zahl 4 addieren? Java Basics - Anfänger-Themen 3
F Problem mit einer Schleife Java Basics - Anfänger-Themen 10
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
Dit_ Daten vom Server in einer Schleife Java Basics - Anfänger-Themen 4
M Oder in einer While-Schleife Java Basics - Anfänger-Themen 7
S while schleife in einer Methode Java Basics - Anfänger-Themen 11
M Effizienter Variablen außerhalb einer Schleife zu deklarieren? Java Basics - Anfänger-Themen 1
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
B Formatieren des Resultates einer for-Schleife Java Basics - Anfänger-Themen 2
A next in einer Schleife Java Basics - Anfänger-Themen 2
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
M warten in einer while-schleife Java Basics - Anfänger-Themen 12
G Zahlen addieren in einer Schleife Java Basics - Anfänger-Themen 4
X Zuweisungsproblem bei einer Schleife Java Basics - Anfänger-Themen 4
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 2
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 3
Antoras Zahlen mischen und mit einer for-Schleife Summe berechnen Java Basics - Anfänger-Themen 12
G Alle Buttons in einer For Schleife ändern Java Basics - Anfänger-Themen 5
M Abbruch einer for Schleife Java Basics - Anfänger-Themen 3
D Probleme bei einer for Schleife Java Basics - Anfänger-Themen 20
M Variablenname mithilfe einer schleife erstellen? Java Basics - Anfänger-Themen 2
G wurzel durch probieren in einer schleife bekommen Java Basics - Anfänger-Themen 5
S Ergebnisse einer while Schleife zusammenfassen Java Basics - Anfänger-Themen 4
H Banner anklicken in einer schleife Java Basics - Anfänger-Themen 7
T Durchlauf einer for-Schleife unterbrechen - wie ? Java Basics - Anfänger-Themen 11
NightmareVirus 2 Abbruch Bedingungen in einer for-schleife Java Basics - Anfänger-Themen 2
S Probleme mit einer for-Schleife Java Basics - Anfänger-Themen 3
J Objekte in einer for schleife referenzieren Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben