ich diese Methode für meine Allgemein DAO gemacht habenein Hibernate Create() prep Anweisung
public T find(String column, String input) {
Query query = em.createQuery("select e from " + type.getSimpleName()+ " e where e."+
":column = :input").setParameter("input", input).setParameter("column", column);
return (T)query.getSingleResult();
}
Es soll ein allgemeiner find() Methode sein, die jede DAO ermöglicht, die die abstrakte genericDAO Klasse erweitert zu verwenden diese Methode mit verschiedenen Parametern.
So zum Beispiel würde der UserDAO diese Methode mit den Argumenten column = "userName" und input = userName.getText() verwenden < Dies ist ein Textfeld.
A RecordDAO könnte es mit Spalte verwenden = record und input = "beatles"
Ich habe ein paar Fragen zu diesem Verfahren.
wird es funktionieren, wie es jetzt ist? Kann ich in meiner creatQuery 2 setParameter() -Methoden und -Parameter haben?
Wird setParameter in diesem Code verwendet, um den Code sicherer zu machen? Kann jemand noch einen SQL-Injection-Angriff durchführen, wenn er im Feld Textfeld des Programms SQL-Code anstelle eines Benutzernamens eingibt?
Gibt es eine effizientere Möglichkeit, eine vielseitige find() -Methode wie diese zu erstellen?
Was wird von getSingleResult() zurückgegeben, wenn nichts gefunden wird? NULL?