例如:同一个用户id,新增不同的项目,项目id是一个数组,可以将用户id,项目id数组分别存入一个map中,然后再mybatis中循环项目id数组
service层:
public int addXmxx(String ids,Long userId) {
HashMap<String, Object> map = new HashMap<>();
map.put("xmids", Convert.toStrArray(ids)); --封装的方法,将前台传来的字符串,转成字符串数组
map.put("userId",userId);
--若是多个列都是固定值,直接 map.put 即可
return jdyhSqMapper.addXmxx(map);
}
dao层:
public int addXmxx(Map<String,Object> map);
数据库为Mysql:
mybatis:
<insert id="addXmxx">
insert into jdyhsqb(xmid,user_id) values
<foreach collection="xmids" separator="," index="index" item="xmid" >
(#{xmid},#{userId})
</foreach>
</insert>
数据库为Oracle
mybatis:
<insert id="addXmxx">
insert all
<foreach collection="xmids" separator=" " index="index" item="xmid" >
into jdyhsqb(xmid,user_id) values (#{xmid},#{userId})
</foreach>
select 1 from dual
</insert>
注:<foreach>标签中的collection属性的值,要与map中的key对应