Wie kann ich eine Ergebnismenge mithilfe einer vorbereiteten Anweisung aus der Datenbank abrufen? Ich habe keine Ahnung, wie ich mit meinen Codes fortfahren soll, ich habe die Abfrage und die Variablen für die vorbereitete Anweisung bekommen, und jetzt bin ich daran gehindert, aus der Datenbank zu holen.Java ruft Ergebnisse aus der Datenbank ab
2
A
Antwort
3
Sie können keine Feldnamen als Parameter übergeben. Nur Daten können so übergeben werden. Die Bedingung
WHERE ?=?
-- ^
mit Substitutionen Field1
und field1
buchstäblich interpretiert werden, als
WHERE 'Field1'='field1' -- note the quotes around the values
Wenn Sie den Zustand von Feldnamen konstruieren möchten, müssen Sie SQL-Zeichenfolge selbst konstruieren. Zum Beispiel könnten Sie
SELECT * FROM Table1 WHERE %s=?
und verwenden Sie es als Format-String für eine formatter, vorbei Field1
für das Argument übergeben %s
zu ersetzen. Stellen Sie sicher, dass die Namen der Felder nicht vom Benutzer eingegeben werden können: Alles, was Teil der SQL-Zeichenfolge wird, muss aus einem Pool von Konstanten in Ihrem Programm oder der Konfigurationsdatei stammen, um SQL-Injection-Angriffe zu vermeiden.
Verwandte Themen
- 1. PDO ruft keine Ergebnisse ab
- 2. MarkLogic ruft Daten aus der Sammlung ab
- 3. Django-Modell ruft dieselben Ergebnisse ab
- 4. Firebase-Datenbank ruft keine Daten ab
- 5. Firebase ruft gelöschte Daten aus der Datenbank
- 6. resultSet.next(): Ruft es Daten aus dem Puffer ODER aus der Datenbank ab?
- 7. Datagridview ruft Werte aus allen Zeilen ab
- 8. Cq5/AEM-Abfrage-Tool ruft keine Ergebnisse ab
- 9. Einschränkung der Ergebnisse aus der Datenbank
- 10. Warum ruft memcache-> get() nur die erste Zeile aus der Datenbank ab?
- 11. Wird User.Identity.GetUserId zwischengespeichert oder ruft es jedes Mal aus der Datenbank ab?
- 12. TableView ruft keine Datensätze aus der SQLite-Datenbank ab und zeigt sie nicht an
- 13. Wie ruft ein SQL Server-Snapshot einen gelöschten Datensatz aus der ursprünglichen Datenbank ab?
- 14. Ruft den Namen der Anrufermethode ab javascript
- 15. DeltaImport ruft alle Daten ab
- 16. Laravel Query Builder ruft falsche ID ab
- 17. SQL mit XMLAGG-Funktion ruft keine Ergebnisse ab, während Java ausgeführt wird
- 18. EF ruft falsche Dezimalgenauigkeit ab
- 19. World Wind Java ruft keine WMS-Ressourcen ab
- 20. Kartenimplementierung Ruby ruft Schlüsselwerte ab
- 21. So löschen Sie die abgefragten Ergebnisse aus der Splunk-Datenbank?
- 22. Warum ruft mein expliziter Cursor nur bestimmte Zeilen aus meiner Datenbank in PL/SQL ab?
- 23. git-ruft eine einzelne Datei aus dem Repository ab
- 24. Mule ruft eine Liste von Objekten aus s3-Bucket ab
- 25. Java/Hibernate HQL ruft Zeilen aus Tabellenabfragen ab, die Null-Fehler zurückgeben
- 26. Ruft ein Java-SAX-Parser die DTD tatsächlich aus dem Internet ab?
- 27. UICollectionView didDeselectItemAtIndexPath ruft keine Zelle ab
- 28. So rufen Sie Daten aus der Firebase-Datenbank ab?
- 29. QTcpServer ruft mehr als eine Adresse ab
- 30. Flasch request.form ruft keine Daten ab
Oh ich bekomme es danke! Aber sagen wir, wenn ich das Ergebnis anzeigen möchte, wie listet ich sie aus den Feldern auf, die bestanden wurden? – newbie95
@ newbie95 Verwenden Sie ['ResultSetMetaData'] (http://stackoverflow.com/a/696798/335858). – dasblinkenlight
@dashblinkenlight Sorry ich meinte was, wenn von einer anderen Klasse die Abfrage wie "Feld1, Feld2 aus Tabelle wo ...." übergeben wurde, wie setze ich Feld1 und Feld2 (Anzahl der Felder je nach Abfrage bestanden) in die vorbereitete Aussage für mich, um das Resultset abzurufen? – newbie95