5

アプリケーションの検索フォームを作成しています。
その中で、ユーザーはデータのフィルタリングに使用するフィールドを選択します。数値フィールドは可変であるため、SQL クエリの where 句にいくつあるべき
かわかりません。where句で可変数の条件 を使用するにはどうすればよいですか??
preparedStatement

ありがとう

4

2 に答える 2

4

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());
于 2012-09-30T10:55:22.883 に答える
3

PrepardStatements は、可変数の条件をサポートしていません。一部のフレームワークは、キーがクエリである Map に各 PreparedStatement をキャッシュします。

そのため、クエリを実行するたびに、PreparedStatement を作成するための文字列を構築し、それがマップにあるかどうかを確認 (および再利用) するか、新しいものを作成してマップに追加する必要があります。

于 2012-09-30T10:47:23.573 に答える