- SQL片段
<select id="selectBuildingInfoByQueryMap" resultType="java.util.Map">
SELECT
.............//此处省略
<where>
<if test="buildingIdList != null">
and t1.building_id in
<foreach collection="buildingIdList" item="buildId" separator=","
open="(" close=")">
#{buildId}
</foreach>
</if>
<if test="buildingId != null and buildingId != ''">
AND t1.building_id=#{buildingId}
</if>
</where>
</select>
遇到的问题:如果Item中的变量名取名为buildingId会出现将循环中的最后一个值赋值给buildingId,出现变量赋值与预期不一致的情况;
建议同一条sql不同变量选用不同变量名称;
原因:mybatis先占位后赋值