Ich würde Folgendes vermeiden
sql.append("SELECT * FROM ").append("dogs_table");
sql.append(" WHERE ").append(colName).append("='");
sql.append(colValue).append("'");
und verwenden Sie stattdessen ein PreparedStatement
mit den zugehörigen Parameter-Setter-Methoden (setString()
) usw. Dies verhindert Probleme mit Werten für colValue
mit Anführungszeichen und SQL-Injection-Angriffen (oder allgemeiner colValue
Bildung einer SQL-Syntax).
Ich würde nie gibt eine Null zurück, wenn die Auflistung lediglich leer war. Das erscheint sehr kontraintuitiv und aus der Sicht des Kunden völlig unerwartet.
Ich würde nicht empfehlen, unter Fehlerbedingungen eine Null zurückzugeben, da Ihr Client dies explizit prüfen muss (und wahrscheinlich vergessen wird). Ich würde bei Bedarf eine leere Sammlung zurückgeben (dies kann Ihrem Kommentar zu einem Nullobjekt entsprechen) oder eher eine Ausnahme auslösen (abhängig von den Umständen und dem Schweregrad). Die Ausnahme ist insofern nützlich, als sie einige Informationen bezüglich des aufgetretenen Fehlers enthält. Null sagt Ihnen nichts.
Was sollten Sie tun, wenn beim Erstellen eines Dog
ein Problem auftritt Objekt ? Ich denke, das hängt davon ab, wie robust und belastbar Ihre Anwendung sein soll. Ist es ein Problem, eine Teilmenge von Dog
zurückzugeben s, oder wäre es völlig katastrophal und Sie müssen dies melden? Das ist eine Anwendungsanforderung (ich musste in der Vergangenheit für beide Szenarien sorgen - best-effort oder alles oder nichts ).
Ein paar Beobachtungen. Ich würde HashMap
verwenden statt der alten Hashtable
(für alle Zugriffe synchronisiert und, was noch wichtiger ist, keine richtige Collection
- wenn Sie eine Collection
haben Sie können es an jede andere Methode übergeben, die any erwartet Collection
) und StringBuilder
über StringBuffer
aus ähnlichen Gründen. Kein großes Problem, aber wissenswert.