0

以下のコードのように、句ステートメントでリスト/文字列配列を渡すことができることを知っています

ここから

iBatis で IN 句を使用して複数のパラメーターを渡す方法を教えてください。

4

1 に答える 1

0

これは可能です。

Select に必要な 3 つのプロパティを保持する、入力を保持するためのクラスを定義します。

  • 名 (文字列)
  • 姓 (文字列)
  • UserNames (文字列のリスト)

C# を使用している場合は、次のようになります。

public class UserRetrievalParams
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public IList<String> UserNames { get; set; }
}

...または似たようなもの。そのオブジェクトのインスタンスを作成し、リストにユーザー名を入力します。

次に、そのオブジェクトをパラメーターとして Ibatis に渡すと、次のようにプロパティを参照できます。

<select id="example" resultMap="yourMap" parameterClass="UserRetrievalParams">
    select * from YourTable where

    username in
    <iterate property="UserNames" open="(" close=")" conjunction=",">
        #UserNames[]:char#
    </iterate>

    and user_first_name=#FirstName:char#
    and user_last_name=#LastName:char#
</select>

2 つの場所で UserNames リスト プロパティを参照しなければならないという、やや直​​観に反する構文に注意してください。

この構文は、.Net 2 以降の Ibatis バージョン 1.6.2.0 で正常に使用しています。

それが役立つことを願っています。

于 2014-08-08T22:56:23.870 に答える