# join updaten in java



## der_mythos (4. Nov 2008)

Hallo,

mir ist leider kein besserer Titel einfallen.

Also ich würde ganz gern Daten aus zwei Tables mit einem Join hohlen und danach das so gewonnen ResultSet weiter verwenden und damit dann so zu sagen ein neuen Table updaten.

Weiss einer vlt wie das geht ?

Hab zwei evtl. Lösugen:

1. Direkt nach der Joinabfrage und der Auswertung der Dateien ein executeUpdate() ausführen um die so verwerteten Daten gleich wieder upzudaten

2. Das bearbeitet resultset in ein RowSet speichern und dann die Daten wieder updaten

Kann einer dieser Lösungen funktionieren ?


Danke im Vorraus


----------



## Guest (5. Nov 2008)

So pauschal lässt sich das nicht sagen. Je nach dem, was du vor hast, lässt sich sowas auch mit einer 
Query erledigen.
z.B.: Tabelle mit Anzahl bestellter Artikel befüllen
	
	
	
	





```
insert into OrderStats(articleId, amount)
  select a.id, sum(o.amount)
    from Article a
         left join OrderPos o on o.articleId = a.id
   group by a.id
```


----------



## der_mythos (5. Nov 2008)

Ok, also wenn ich deinen Code richtig interpretiere machst du den instert direkt mit den selektierten Daten.

Ich will aber die Daten die ich über dein Join erhalte bearbeiten und danach will ich diese erst wieder in die DB eintragen.

Gz


----------



## Guest (5. Nov 2008)

Dein Statement erzeugst du z.B. mit
	
	
	
	





```
PreparedStatment stmt = connection.prepareStatement(
  dein_sql_statement,
  ResultSet.TYPE_SCROLL_SENSITIVE,  // Relative Positionierung innerhalb des ResultSets bzw. Cursors zulässig
  ResultSet.CONCUR_UPDATABLE,       // Direkte Updates im ResultSet möglich
  ResultSet.CLOSE_CURSORS_AT_COMMIT // Bei commit das ganze schreiben lassen
);
```
und die Updates direkt auf dem ResultSet (siehe updateXXX Methoden in ResultSet)
In der API-Doku zu ResultSet gibt es ein Beispiel, wie es geht.

Das ganze setzt voraus, dass der JDBC-Treiber, den du verwendest, sowas auch unterstützt.


----------



## der_mythos (6. Nov 2008)

Also ich gehe mal davon aus das der Treiber das schon unterstützt.

Aktueller Mysql typ 4 Treiber.

Ich werd mir mal die Api durchlesen ob ich was finde.

Gz


----------

