代码如下:
select * from sys_model <where> <if test="modelList != null and modelList.size() > 0"> and model_name in <foreach collection="modelList" item="modelName" open="(" close=")" separator="," index="index"> #{modelName} </foreach> </if> <if test="modelName != null and modelName != ''"> and model_name like concat('%',#{modelName},'%') </if> </where>
这里我对model_name条件进行了两次筛选,其中第一次是循环查询,我定义item为modelName,下面的like筛选我又用了modelName传参。
这里for循环中的modelName是我用item定义的,like筛选的modelName是传过来的对象里面有一个modelName属性。这个时候循环体定义的名称和下面的参数名重名就会出现下面的modelName复用for循环的最后一个数据的值。