1.select中传入map,map中包含list
后台代码:
List<String> bhList = ztryArchivesMapper.queryZjbhsByQcd(queryMap);
paramsMap.put("bhList", bhList);
PageHelper.startPage(pageNum, pageSize);
List<Ztry> list = ztryMapper.queryZtryListByCondition(paramsMap);
xml种的代码:
<if test="bmList != null and bmList.size != 0">
AND zjhm in
<foreach close=")" collection="bmList" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</if>
解释:collection对应的就是map种list的key。
2.insert中传入list
xml中错误的写法:
<insert id="insertGz" parameterType="java.util.Map">
insert into ${tableName} (user_id,field_id)
values
<foreach item="item" collection="ids" index="index" open="(" separator="," close=")">
#{userId,jdbcType=VARCHAR},#{item,jdbcType=VARCHAR}
</foreach>
</insert>
这样写是不对的,我们想要的SQL语句是:
insert into table_name (user_id,field_id) values (1,2),(1,2),(1,2)
而上面这种会得到这样的结果:
insert into table_name (user_id,field_id) values (1,2,1,2,1,2)。
因为在foreach标签中的open和close都是针对循环体中的内容。
所以我们修改为正确的写法是:
<insert id="insertGz" parameterType="java.util.Map">
insert into ${tableName} (user_id,field_id)
values
<foreach item="item" collection="ids" index="index" separator=",">
(#{userId,jdbcType=VARCHAR},#{item,jdbcType=VARCHAR})
</foreach>
</inser
后端代码是:
Map<String,Object> params = new HashMap<String,Object>();
params.put("tableName", "tb_user_clue");
params.put("userId", userId);
params.put("ids", Arrays.asList(ids.split(",")));
gzArchivesService.insertGz(params);
最后
以上就是典雅服饰最近收集整理的关于mybatis的参数传入集合的全部内容,更多相关mybatis内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复