dao层方法:
@Repository
public interface AppointDao extends Mapper<Appoint> {
List<Appoint> queryAppointListByCondition(@Param("conditionMap") AppointCondition conditionMap);
}
实体类(map也可以):
@Data
public class AppointCondition extends BaseCondition {
private List<Long> deviceIds;//这就是IN后面要查的List数组
}
xml:
<resultMap id="appointResultMap" type="appoint" extends="BaseBusLongEntity.entity">
<result property="realExpend" column="C_REAL_EXPEND"/>
</resultMap>
<sql id="allColumn">
o.C_REAL_EXPEND
</sql>
<sql id="queryCondition">
<if test="conditionMap.deviceIds !=null">
AND o.C_DEVICE_ID IN
<foreach collection="conditionMap.deviceIds" item="deviceIdList" open="(" close=")" separator="," index="index">
#{deviceIdList}
</foreach>
</if>
</sql>
<select id="queryAppointListByCondition" resultMap="appointResultMap">
SELECT <include refid="allColumn"/>
FROM appoint o
WHERE 1=1
<include refid="queryCondition"/>
</select>
重点讲解:
<foreach collection="conditionMap.deviceIds" item="deviceIdList" open="(" close=")" separator="," index="index">
#{deviceIdList}
</foreach>
即:
<foreach collection="参数中要遍历的参数单列集合" item="数组别名" open="(" close=")" separator="," index="index">
#{数组别名}
</foreach>