Java & JDBC

riddler16

Mitglied
Einen wunderschönen guten Abend,

ich habe einige Fragen bzgl. Java und der Benutzung von JDBC. Es will einfach nicht so wie ich möchte.
Folgnedes Problem: Ich habe eine Tabelle mit den Feldern id, intValue, Stringvalue.
Jetzt möchte ich die Tabelle Zeile für Zeile durchgehen und manchmal kann es sein, dass bei Stringvalue kein Wert steht. Die Zelle ist also leer.
Falls dies eintritt so möchte ich gerne in diese Zelle en Wert von intValue (als String) reinkopieren.
Mein Ansatz sieht wie folgt aus:

Code:
try {
	ResultSet result = DatabaseConnection.getResultSet(Select * from Tabelle);
	
		while(result.next()){
	
		Integer id = result.getInt("id");
		Integer intvalue = result.getInt("intvalue");
		String stringvalue = result.getString("stringvalue")		
				
			if(stringvalue == null){
				String st = intvalue.toString();
			        Connection c = DatabaseConnection.getConnection();
				Statement s = c.createStatement();
				
                                s.executeUpdate("UPDATE Tabelle SET stringvalue=" + st);
					
		}
...
Theoretisch klappt alles. Es wird also der richtige Wert ausewählt aber leider nicht geschrieben. Der Fehler muss also in der "UPDATE" Anweisung liegen. Die Datenbank wird zwar aktualsiert-aber leider nur mit einem einzigen Wert und somit bekommt die komplette Spalte (auch dort wo schon Stringwerte drinstanden), einen einzigen Wert zugewiesen. WARUM? :-)
 
Ja, du hast Recht, am Update liegt es auch ...

Probier es mal so:
Java:
s.executeUpdate("UPDATE Tabelle SET stringvalue='" + intvalue + "' WHERE id=" + id);
Das sollte eigentlich klappen ;)
 
Hey super das klappt in der Tat. Vielen Dank!
Jetzt bleibt aber leider noch eine Frage übrig, die in meinen Augen wirklich sehr merkwürdig ist.
Nach dem ersten Ausführen, wurden ca 5 Werte geschrieben-nach dem zweiten so gut wie alle von ca 800 aber 2 bleiben einfach übrig. Ich habe sie mal ausgeben lassen in der Schleife und naja-es stellt sich heraus, dass die Werte == null sind, sich aber trotzdem nicht überschreiben lassen. Außerdem frage ich mich, warum ich erst 2 Mal das Programm ausführen musste, damit die meisten Werte geschrieben wurden und dies nicht schon beim ersten Mal direkt geschehen ist.

Besten Dank
 
Zurück