アプリケーションの検索フォームを作成しています。
その中で、ユーザーはデータのフィルタリングに使用するフィールドを選択します。数値フィールドは可変であるため、SQL クエリの where 句にいくつあるべき
かわかりません。where句で可変数の条件
を使用するにはどうすればよいですか??
preparedStatement
ありがとう
アプリケーションの検索フォームを作成しています。
その中で、ユーザーはデータのフィルタリングに使用するフィールドを選択します。数値フィールドは可変であるため、SQL クエリの where 句にいくつあるべき
かわかりません。where句で可変数の条件
を使用するにはどうすればよいですか??
preparedStatement
ありがとう
where句に可変数の条件を追加する場合は、StringBuilder(マルチスレッド環境の場合はStringBuffer)を使用し、条件に応じて実行時間を文字列に連結/追加します。
お気に入り
StringBuilder query = new StringBuilder("Select id, name from Student ");
if(args >0)
{
query.append(" where "); //and add more args.
後で、このクエリを文字列に変換して、準備済みステートメントを作成します
PrepareStatement(query.toString());
PrepardStatements は、可変数の条件をサポートしていません。一部のフレームワークは、キーがクエリである Map に各 PreparedStatement をキャッシュします。
そのため、クエリを実行するたびに、PreparedStatement を作成するための文字列を構築し、それがマップにあるかどうかを確認 (および再利用) するか、新しいものを作成してマップに追加する必要があります。