Ich versuche eine Funktionalität zu implementieren, wo ich eine Datenbank mit Eingabeparameterwerten abfragen muss. Eingabewerte sind optional.Wie man Selektionskriterien dyanisch in Java oder SQL hinzufügt
Zum Beispiel
Ich habe eine Tabelle Student mit folgenden Feldern
a) STUDENT_ID b) student_roll_no c) student_first_name d) student_last_name .. etc
Ich bin brauchen ein schreiben Dao-Layer-Funktion, um Student Details in Abhängigkeit von Eingabekriterien oder Parameter abrufen.
1), wenn nur Eingang enthält STUDENT_ID dann sollten Abfrage select * from Student sein, wo STUDENT_ID =:
2 inputStudentId), wenn Eingang STUDENT_ID enthält, vorName dann Abfrage select * from Student sein sollte, wo STUDENT_ID =: inputStudentId und first_name =: inputFirstName
wie weise für andere Eingabeparameter, beachten sie bitte Eingangsparameter 0 bis n Größe
seinBitte vorschlagen, was ist der beste Ansatz, es zu tun? Ich möchte keine Null-Checks hinzufügen und die Abfrage für Nicht-Null-Parameter anhängen. Ich will etwas sinnvoll und logisch entweder in Java oder SQL (benannte Abfrage)
ich java1.6 versuchen bin mit und überwintern
Sie fragt, wie eine 'String' zu bauen? Wenn ja, verwenden Sie einen ['StringBuilder'] (https://docs.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html). --- Für die beste Antwort sollten Sie zeigen, * wie * Ihre DAO-Methode die Eingabekriterien erhält und was Sie bisher versucht haben, z. B. den Code, den Sie haben. – Andreas
Andreas Ich frage nicht, wie man einen String erstellt, ich werde diesen Wert in DAO funtion zum Beispiel hentStudentInfo (studentId, firstName, lastName ......) –
Aber Ihre ganze Frage scheint um, wie man das SQL zu bauen Anweisung (ein 'String'), abhängig von Ihrer Eingabe. --- Auch nicht Code in einem Kommentar anzeigen, bearbeiten Sie die Frage. --- Was sind die Arten der Parameter? Wie erkennen Sie, ob ein Wert angegeben wurde oder nicht? --- Antworte nicht. Frage bearbeiten und klären – Andreas