# ResultSet serialisieren



## tron23 (14. Sep 2004)

Hallo Java-Forum,

ich habe eine kleine Frage zur Serialisierung. Und zwar schicke ich einen String mit einer SQL-Abfrage an einen Datenbankserver. Auf dem Server läuft ein Programm, das diese Anfragen annimmt, für jede Anfrage einen Thread aufmacht und das Resultat zurück zum Client-Rechner schickt. 
Nun habe ich mir überlegt, daß ich den kompletten ResultSet zum Client zurückschicke und mit diesem dann dort weiterarbeite, metadaten auslesen um Tabellen anzupassen etc.

So weit, so gut, hier ist das Problem:



```
OutputStream os = client.getOutputStream();
ObjectOutput oo = new ObjectOutputStream(os);
				
oo.writeObject(query);
oo.flush();
			
InputStream is = client.getInputStream();
ObjectInput oi = new ObjectInputStream(is);

// Hier bleibt das Programm hängen
ResultSet rs = (ResultSet) oi.readObject();
```

Das ResultSet läßt sich nicht serialisieren. Habe den selben Code mal mit einem Vector ausprobiert, hat anstandlos geklappt. Hat jemand eine Idee?

*edit*
Habe noch mal einen String serialisiert vom Client zum Server und von dort wieder zum Client geschickt. Klappt tadellos.  Habe jetzt auch rausgefunden, das man ResultSets nicht serialisieren kann. Ich weiß zwar immer noch nicht warum, aber es geht nicht.


----------



## Jaraz (14. Sep 2004)

Hi,

ResultSet ist ein Interface das von JDBC Hersteller zu Hersteller jeweils einzeln implementiert wird.
Da bei Methodenaufrufen wieder Kommandos an die Datenbanken gesendet werden können, wirst du ein ResultSet nicht serialisieren können. (Zumindest nicht 100% zuverlässig.)

Gruß Jaraz


----------



## tron23 (14. Sep 2004)

Danke für die Antwort. Da muß ich mir wohl was anderes einfallen lassen, um die Daten rüberzuholen.
Schade, bringt mein ganzes Konzept durcheinander  :cry:, aber was solls. Trotzdem danke.


----------



## Bleiglanz (14. Sep 2004)

javax.sql.RowSet


----------

