2

これはおそらく20年前からある質問ですが、とにかく質問します。複数の検索オプションがある画面があります。いくつかは組み合わせることができます。一部は排他的です。

元:

姓名で検索

また

年齢で検索

これを処理するための最良の方法は何ですか?これをアプリで処理し、多くの関数の1つを呼び出すか、if/elseの全体を含む1つの関数を呼び出しますか。一連のif/elseを実行するのは、とても時代遅れのようです。もっと効率的な方法はありませんか?

4

2 に答える 2

2

ビルダーを使用してさまざまな述語をオブジェクトに収集し、そのオブジェクトを関連するクエリを生成する関数/メソッドに渡すことをお勧めします。

SQLORM Javaライブラリは、このアプローチを使用して、オブジェクト指向の方法でSQLクエリを構築します。このページでは、多くのif-elseを使用するメソッドを使用してクエリ文字列を作成する場合と、ビルダーの方法を使用する場合の長所と短所について説明します。

于 2009-08-10T13:52:37.940 に答える
0

フロントエンドで一緒に入力できるフィールドの検証を行います。

ストアド プロシージャの主な目標は、連結を含む SQL を使用しないことです。

sproc では、パラメーターが null の場合はパラメーターまたはフィールド値を使用するために、一連の isnull ステートメントを使用する傾向があります。

あなたが言うように、それは新しいトリックではありませんが、機能し、実行ごとに新しいSQLを生成するよりもはるかに高速です。また、実行計画を容易に予測できます。

于 2009-08-10T14:00:01.833 に答える