Java SQL-Update

Status
Nicht offen für weitere Antworten.

MScalli

Bekanntes Mitglied
Hi Leutz.
Hab da ein kleines Problem.
Ich muss in ner Datenbank ein Update machen, eigentlich kein Problem.. und jetzt kommts..

da ich einen eintrag(ein Pfad) verändern muss muss ich zuerst ein Feld lesen, danndieses Feld verändern und dann den Satz Updaten.

also aus der Spalte in der
c:\\test\\test1\\unterordner
soll werden
c:\\test\\test2\\unterordner

also muss ich jeden Satz auslesen, den Feldinhalt auslesen, ändern und dann wieder abspeichern.

Also lesen alleine und updaten alleine geht ja, aber wie geht das das ich nen satz bekomme, da stehen bleibe solange bis alle änderungen vollzogen sind, ihn dann wieder abspeichere, und weiter suche.

hier mal bisschen code
arg2 = c:\\test\\test1
arg3 = c:\\test\\test2

Code:
String sql_query = "select pkey, zielort from testdb where zielort like '" + arg2 + "%'";

Code:
		try {
			ResultSet rs = stmt.executeQuery( sql_query );

			while(rs.next()){
				System.out.print(rs.getString("pkey") + "  ");
				System.out.println(rs.getString("zielort"));

				System.out.print(rs.getString("pkey") + "  ");
				System.out.println(arg3 + rs.getString("zielort").substring(arg2.length()));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

bitte werft mir nicht einfach executeUpdate() hin.
ich hab es hier nur mal so gepostet damit ihr seht das ich eigentlich schon weiss was ich tun sollte,
aber das es einfach nicht will ..
wenns ohne die unterordner wäre, dann wär alles klar.. einfach
Code:
		String sql_query = 	"update testdb set zielort='" +
							arg2 + "' " + 
							"where zielort like '" +
							arg3 + "'";

kann mir bitte wer auf die sprünge helfen ??[/code]
 
Also lesen alleine und updaten alleine geht ja, aber wie geht das das ich nen satz bekomme, da stehen bleibe solange bis alle änderungen vollzogen sind, ihn dann wieder abspeichere, und weiter suche.
Was genau meinst du damit?

Du könntest ja ein sub-select machen, also dort updaten wo der wert gleich dem gesuchten ist, dann geht's in einem statement.
Falls deine DB sub-selects unterstützt natürlich...
 
du durchläufst das ResultSet der Abfrage und kannst dann für jedes Element in der der while-Schleife ein update ausführen,
was ist die Frage?
 
SlaterB hat gesagt.:
du durchläufst das ResultSet der Abfrage und kannst dann für jedes Element in der der while-Schleife ein update ausführen,
was ist die Frage?

genau das. Wie kann ich in der While Schleife den Satz den Ich gerade gelesen habe verändern.. besser gesagt nur das Feld zielort.
 
Ich denke, so könnts gehen: (pseudocode)
Code:
While(rs.next())
{
If(rs.get(spalte).equals(zuErsetzen))
{
Conn.prepareUpdate("set spalte=wert where Id=" + rs.get("Id"))
conn.executeUpdate()
}
}
 
oh, ich habe die Antwort gar nicht gesehen,
also entweder wie zilti, was mir noch nicht ganz vollständig erscheint
oder genauer beschreiben:
was spricht gegen ein ganz normales beliebiges update, wieso sollte das in der while-Schleife anders/ schwieriger sein?
 
Ich habs jetzt nacheinander gemacht..
erst alle ausgelesen, in nem array gemerkt, und dann reingeschrieben.
Dieser weg iss mal übel, aber anderst wollte es einfach nicht!!
Ich werds aber weiter versuchen.. denn ich werd das sehr oft brauchen!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben