使用hashMap作为parameterClass在ibatis中选择Query

时间:2014-11-27 10:39:59

标签: java sql hashmap ibatis

我有以下java代码

Map temp=new HashMap();
temp.put("RL_ID",rl_Id);
temp.put("User_Id",user_Id);
temp.put("URI",uri);
getSqlMapClientTemplate().queryForMap("AuditReport",------remaining parameters------);

我想在ibatis中访问此地图,并在选择查询中检索地图的值。

<select id="AuditReport" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
Select BIO_RESEARCH_LOCATION_USER.id from BIO_RESEARCH_LOCATION_USER WHERE -----remaining query---------

完成剩余查询和java函数的适当方法是什么。

1 个答案:

答案 0 :(得分:1)

假设BIO_RESEARCH_LOCATION_USER中的列名与您在地图中放置的参数相同,则您需要执行以下操作:

<select id="AuditReport" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
    Select BIO_RESEARCH_LOCATION_USER.id 
    from BIO_RESEARCH_LOCATION_USER
    WHERE BIO_RESEARCH_LOCATION_USER.RL_ID = #RL_ID#
    AND BIO_RESEARCH_LOCATION_USER.User_ID = #User_ID#
    AND BIO_RESEARCH_LOCATION_USER.URI = #URI#
</select>

如果您不想在参数周围引用,则应使用$代替#。例如,如果您不想要RL_ID周围的引号,则需要使用$RL_ID$代替上面的#RL_ID#