# ResultSet zu bestimmtem DS navigieren



## Reinski (30. Jun 2006)

Tach zusammen,

ich habe in einem ResultSet per SQL-Statement sämtliche für einen bestimmten Vorgang relevanten Datensätze.
Beim Durchführen dieses Vorgangs muss ich in nicht vorherbestimmter Reihenfolge auf die Datensätze zugreifen.
Allerdings habe ich ausser _absolute()_ keine Methode gefunden, die es ermöglicht, im ResultSet gezielt Sätze anzuspringen.  :? 

Mein Problem ist, dass ich nur den primary key des gewünschten Satzes habe, jedoch nicht seinen Index.

Wie macht man das mit einem ResultSet, wenn man zB. zum Datensatz mit ID=4711 navigieren möchte??  ???:L 
Muss ich dafür wirklich ein neues Select absetzen bzw. über das komplette vorhandene ResultSet loopen?

Gruß!

reinski


----------



## SamHotte (30. Jun 2006)

Mit SQL navigiert man eigentlich nicht innerhalb der Datensätze, sondern benutzt Mengenoperationen ... wenn man nur den Datensatz 4711 haben möchte, macht man halt 'SELECT * FROM tabelle WHERE nummer=4711'.


----------



## Reinski (30. Jun 2006)

SamHotte hat gesagt.:
			
		

> ...wenn man nur den Datensatz 4711 haben möchte, macht man halt 'SELECT * FROM tabelle WHERE nummer=4711'.


Tolle Aussage - hilft mir aber nicht weiter, denn wie gesagt: ich habe im ResultSet sämtliche Datensätze, die für den Vorgang relevant sind.
Und was für eine performance ist das, wenn ich in einer Schleife jedesmal ein neues Select absetze, um einen bestimmten Satz zu lesen?
Da müsste es doch schneller sein, vorher die relevanten Sätze im ResultSet (=im Speicher) zu haben und in der Schleife nur den bestimmten Satz anzuspringen, oder irre ich mich?
Gruß!

reinski


----------



## merxleben (30. Jun 2006)

Hallo,

wenn du schon alle Ergebnisse hast und dir eine neue Anfrage zu teuer ist, dann solltest du dein ResultSet in eine Struktur überführen, die dir die gewünschten Operationen erlaubt. Z.B HashMap mit der ID als Schlüssel oder ähnliches.

Martin


----------



## Reinski (30. Jun 2006)

Guter Vorschlag, danke! 
Gruß!

reinski


----------

