Nachdem ich verschiedene Lösungen in verschiedenen Foren untersucht und keine gute Lösung gefunden habe, denke ich, dass der folgende Hack, den ich mir ausgedacht habe, am einfachsten zu befolgen und zu codieren ist:
Beispiel: Angenommen, Sie haben mehrere Parameter, die Sie in der 'IN'-Klausel übergeben müssen. Fügen Sie einfach einen Dummy-String in die 'IN'-Klausel ein, z. B. "PARAM", um die Liste der Parameter zu bezeichnen, die anstelle dieses Dummy-Strings übergeben werden sollen.
select * from TABLE_A where ATTR IN (PARAM);
Sie können alle Parameter in einer einzigen String-Variablen in Ihrem Java-Code zusammenfassen. Dies kann wie folgt geschehen:
String param1 = "X";
String param2 = "Y";
String param1 = param1.append(",").append(param2);
Sie können alle Ihre Parameter durch Kommas getrennt in einer einzigen String-Variablen anhängen, in unserem Fall 'param1'.
Nachdem Sie alle Parameter in einer einzigen Zeichenkette zusammengefasst haben, können Sie einfach den Blindtext in Ihrer Abfrage, d. h. in diesem Fall "PARAM", durch die Parameterzeichenkette, d. h. param1, ersetzen. So müssen Sie vorgehen:
String query = query.replaceFirst("PARAM",param1); where we have the value of query as
query = "select * from TABLE_A where ATTR IN (PARAM)";
Sie können nun Ihre Abfrage mit der Methode executeQuery() ausführen. Achten Sie nur darauf, dass das Wort "PARAM" nirgendwo in Ihrer Abfrage vorkommt. Sie können anstelle des Wortes "PARAM" eine Kombination von Sonderzeichen und Alphabeten verwenden, um sicherzustellen, dass ein solches Wort in der Abfrage nicht vorkommen kann. Ich hoffe, Sie haben die Lösung gefunden.
Hinweis: Obwohl es sich hierbei nicht um eine vorbereitete Abfrage handelt, erledigt sie die Arbeit, die ich mit meinem Code erledigen wollte.