2011-01-18 4 views

答えて

5

Java側で検索しないでください。それは不必要に遅く、メモリを大量に消費します。あなたは基本的にDBが設計された仕事を引き継いでいます。 SQL言語能力の助けを借りて、あなたが望むデータを正確に選択して返すだけの目的で、DBを設計しましょう。

SQL WHERE clauseの学習を開始してください。たとえば、ユーザー名とパスワードが一致するかどうかを確認するには、次のようにします。

connection = database.getConnection(); 
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE username=? AND password=md5(?)"); 
preparedStatement.setString(1, username); 
preparedStatement.setString(2, password); 
resultSet = preparedStatement.executeQuery(); 

if (resultSet.next()) { 
    // Match found! 
} else { 
    // No match! 
} 
+1

これは良い考えのように聞こえますが、javaに検索方法がない理由が解消されています。 – anon

+2

確かに。 DBテーブル全体をJavaのメモリにコピーして、必要なデータのみをフィルタリングする理由はまったくありません。 – BalusC

2

SQL ResultSetを意味すると仮定すると、答えは「いいえ」です。これを書かなければなりません。 JDBCドライバは通常、すべての行を一度に取得しません(クエリが100万行を返した場合はどうなりますか)。行を読んでフィルタリングしなければなりません。

関連する問題