# Mehre Werte für einen Prepared-Statement_Parameter übergeben?



## Landei (17. Feb 2009)

Hi Leute,

ich stehe gerade auf dem Schlauch. Ich möchte ein PreparedStatement schreiben, das so aussieht:
"SELECT * FROM bla WHERE foo IN (?)"
Nun weiß ich nicht von vornherein, wieviel Werte für die Auswahlliste für foo ankommen. Gibt es eine Möglichkeit, irgendwie mehrere Parameter hintereinander zu übergeben? Ich weiß, dass ich mir das Statement auch "per Hand" zusammenbauen kann, dann verliere ich aber viele nette Eigenschaften des PreparedStatements. Das muss doch irgendwie gehen...


----------



## SlaterB (17. Feb 2009)

tja, ich kann nur meine bisherige Kenntnis und die API wiedergeben,
da gibst das soweit ich sehe/ erinnere nicht 

bei Hibernate gibts das übrigens, ob dort eine Query trotzdem noch die gleichen netten Eigenschaften hat (etwa Vorberechnung in der Datenbank) kann ich freilich nicht bezeugen


----------



## Landei (17. Feb 2009)

Schaaaaade (bzw.: Schande!)

Bei JDBC gibt es wirklich einigen Verbesserungsbedarf. Hibernate wäre bei meinen fünf Tabellen der Overkill, aber sowas sollte Java doch von sich aus draufhaben, oder?

Trotzdem danke für die Info, da brauch ich mir wenigstens nicht den Wolf zu suchen...


----------



## abollm (26. Feb 2009)

Landei hat gesagt.:


> [..]ich stehe gerade auf dem Schlauch. Ich möchte ein PreparedStatement schreiben, das so aussieht:
> "SELECT * FROM bla WHERE foo IN (?)"
> Nun weiß ich nicht von vornherein, wieviel Werte für die Auswahlliste für foo ankommen. Gibt es eine Möglichkeit, irgendwie mehrere Parameter hintereinander zu übergeben? Ich weiß, dass ich mir das Statement auch "per Hand" zusammenbauen kann, dann verliere ich aber viele nette Eigenschaften des PreparedStatements. Das muss doch irgendwie gehen...



Frage 1: Welches RDBMS?
Frage 2: Was genau ist dein Ziel, d.h. was soll die SELECT-Abfrage liefern? Dein Beispiel ist -- ähem -- schon reichlich merkwürdig. Denn du fragst ja offensichtlich alle Datensätze deiner Tabelle "bla" ab, für die der Spaltenwert "foo" innerhalb der irgendwie ermittelten Parameterwerte liegt.

Selbstverständlich könnte man so eine Aufgabe auf einem RDBMS zusammen mit einer 3 GL-Sprache wie Java grundsätzlich lösen. Nur hängt es eben davon ab, was genau du machen willst, will sagen: Was soll in deinem Parameter stehen und wie genau ermittelst du diesen Parameterinhalt?


----------

