在MAPPER XML中传递SELECT语句中的多个参数

时间:2012-11-22 13:57:04

标签: java xml spring ibatis mybatis

我正在使用MyBatis& Spring框架。 我有一个DB Table STORE,它有一些字段。我需要使用表格中的2个字段从表格中获取记录,比如Name&同上

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

我正在为表使用MAPPER接口。 MAPPER XML包含查询。

对于单个参数查询,我可以使用以下..

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

现在,如何传递多个参数,如我前面提到的情况,使用2种不同的数据类型?

1 个答案:

答案 0 :(得分:1)

你必须使用一个类的对象,它可以存储你的数据(name&amp; id), 这可以是一个hashmap或任何其他数据类。


在调用select语句之前,将参数放入hashmap或任何其他数据类中,然后在select中使用你的值的名称(它存储在hashmap的key字段或者名称中)使用过的类的属性)

小片段:

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

...使用hashmap作为参数调用findAllStoreByName

将您的选择更改为以下内容:

    <select id="findAllSTOREByName"  parameterClass="hashmap"     resultMap="com.StoreObject">
        select * from "STORE" where NAME = #name# and id = #id#
    </select>