mybatis中会遇到要使用一个String 和一个集合 作为参数 查询结果集,先说一下思路
把String参数放进map,把集合放进map,
如下:
String idChar = request.getParameter("materialId");
Map<String, Object> params = new HashMap<String, Object>();
List<String> list = new ArrayList<>();
String[] id = idChar.split(",");
for(String materialId :id){
list.add(materialId);
params.put("list",list);
}
params.put("proId",proId);
使用这个 param作为参数,直接看dao层和xml
@Override
public List<MsProCenterStore> realTimeSumQuantity(Map param) {
return this.getByKey("realTimeSumQuantity", param);
}
xml
<select id="realTimeSumQuantity" parameterType="java.util.Map" resultMap="MsProCenterStore">
SELECT * FROM ms_pro_center_store
WHERE pro_id =#{proId}
AND material_id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>