Ich habe Abfrage wieSELECT * from TableName WHERE id= ?
Pass Integer Array für Spalte Nummer in der Datenbank
für id
Feld sieht Ich möchte Array von IDs, die in Feld Nummer Database
passieren,
I Anzahl Array-Typ i
erstellt haben Datenbank, wenn ich Array zu meiner vorbereiteten Aussage übergebe, erhalte ich folgenden Fehler.
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT * from Tablename WHERE id= ?]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected NUMBER got schema.app_id
at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:95)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springfra
Zeigen Sie uns die entsprechende Java-Code. –
Sie können Array von int an diese sql native Abfrage nicht übergeben. Sie sollten Schleife verwenden, um die Abfrage mehrmals auszuführen und speichern Sie das Ergebnis in einem 'Object [] []' Type .. –
Ich glaube nicht, dass Kontext diese Abfrage in einer Schleife mehrmals für verschiedene ID ausgeführt wird, ist a gute Idee. Ich denke, dass die Übergabe einer Liste und Ausführen der Anweisung mit IN where-Klausel wie folgt: "Wählen Sie * aus MYTABLE, wo ID in (1, 2, 3, 4, 5)" Sie bessere Leistung bekommen ... Sie können eine Methode erstellen um das Array zu csv string (oder es ist bereits in der Klasse, ich bin nicht dieser Java-Typ tbh) –