mybatis传递Map和List集合示例

时间:2021-08-23 14:44:44

1、List示例

java文件:

dao:

public List<ServicePort> selectByIps(List<String> ips);

xml文件:

<!-- 高级查询 -->
<select id="selectByIps" resultType="ServicePort">
Select *
from port_service_info where ip in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>

2、Map示例

java文件:

service:

public List<TamperAndHijack> selectByDomains(List<String> domains, String dayKey) {
Map<String, Object> map = new HashMap<String, Object>();
//不存在就查询所有
if(domains.isEmpty()){
domains = null;
}
map.put("domains", domains);
//默认为当天
if(dayKey == null || "".equals(dayKey)){
dayKey = CommonUtil.getCurrentDateStr();
}
map.put("dayKey", dayKey);
return tamperAndHijackMapper.selectByDomains(map);
}

dao:

/** 通过domains查询指纹信息 */
public List<TamperAndHijack> selectByDomains(@Param("map")Map<String, Object> map);

xml文件:

<!-- 高级查询 -->
<select id="selectByDomains" parameterType="map" resultType="TamperAndHijack">
Select *
from tamper_hijack
where 1 = 1
<if test="map.dayKey !=null and map.dayKey !=''">
and dayKey = #{map.dayKey}
</if>
<if test="map.domains !=null">
and domain in
<foreach item="item" index="index" collection="map.domains"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
order by id desc

</select>