次のことは避けたいです
sql.append("SELECT * FROM ").append("dogs_table");
sql.append(" WHERE ").append(colName).append("='");
sql.append(colValue).append("'");
代わりに、PreparedStatement
を使用してください。 関連するパラメーターセッターメソッド(setString()
)など。これにより、colValue
の値に関する問題が防止されます。 引用符があり、SQLインジェクション攻撃(またはより一般的にはcolValue
いくつかのSQL構文を形成します。
私は決して コレクションが単に空の場合はnullを返します。これは非常に直感に反しているように思われ、クライアントの観点からはまったく予想外です。
クライアントがこれを明示的にチェックする必要があるため(おそらく忘れてしまうため)、エラー状態でnullを返すことはお勧めしません。必要に応じて空のコレクションを返すか(これはnullオブジェクトに対するコメントに類似している可能性があります)、または例外をスローする可能性が高くなります(状況と重大度によって異なります)。例外は、発生したエラーに関連する情報を保持するという点で便利です。ヌルは何も教えてくれません。
Dog
の作成中に問題が発生した場合はどうすればよいですか 物体 ?それは、アプリケーションの堅牢性と回復力に依存すると思います。 Dog
のサブセットを返すのは問題ですか? s、またはそれは完全に壊滅的であり、これを報告する必要がありますか?これはアプリケーションの要件です(過去にどちらのシナリオにも対応する必要がありました-ベストエフォート またはオールオアナッシング 。
いくつかの観察。 HashMap
を使用します 古いHashtable
ではなく (すべてのアクセスに対して同期され、さらに重要なことに、適切なCollection
ではありません -Collection
がある場合 anyを期待する他のメソッドに渡すことができます Collection
)、および StringBuilder
StringBuffer
を介して 同様の理由で。大きな問題ではありませんが、知っておく価値があります。