0

MyBatis&SpringFrameworkを使用しています。DBテーブルSTOREがあり、いくつかのフィールドがあります。テーブルの2つのフィールド、たとえばName&Idを使用して、テーブルからレコードをフェッチする必要があります。

select * from STORE where Name="Mels" & Id=123

テーブルにMAPPERインターフェイスを使用しています。MAPPERXMLにはクエリが含まれています。

単一のパラメータクエリの場合、次を使用できます。

<select id="findAllSTOREByName"  parameterType="java.lang.String" resultMap="com.StoreObject">
select * from "STORE" where "NAME" = #{name}
</select>

さて、2つの異なるデータ型を使用して、前述の場合のように複数のパラメーターを渡すにはどうすればよいですか?

4

1 に答える 1

1

データ(名前とID)を格納できるクラスのオブジェクトを使用する必要があります。これは、ハッシュマップまたはその他のデータクラスである可能性があります。


selectステートメントを呼び出す前に、パラメーターをハッシュマップまたはその他のデータクラスに配置し、selectで値の名前を使用します(ハッシュマップのキーフィールドまたは使用されるクラスの属性の名前に格納されます)

小さなスニペット:

    HashMap<String, Object> values = new HashMap<String, Object>();
    values.put("id", 123);
    values.put("name", "Mels");

...パラメータとしてハッシュマップを使用してfindAllStoreByNameを呼び出します

選択を次のように変更します。

    <select id="findAllSTOREByName"  parameterClass="hashmap"     resultMap="com.StoreObject">
        select * from "STORE" where NAME = #name# and id = #id#
    </select>
于 2012-11-26T12:25:40.967 に答える