这是一个mapper接口,Users_Roles
是一个实体类
@Mapper
public interface FPYHMapper {
void usersAddAll(ArrayList<Users_Roles> list);
}
mapper.xml 中的数据
<!--批量添加信息-->
<insert id="usersAddAll" parameterType="list">
insert into users_roles(users_id,roles_id)
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select #{item.users_id,jdbcType=NULL},#{item.roles_id,jdbcType=NULL} from dual
</foreach>
</insert>
"UNION ALL"
作用:合并结果集
根据上下配置文件,需要注意三个地方:
(1)需要取掉values
(2)separator属性值改为UNION ALL。因为在oracle中用insert into xxx values (xxx,xxx),(xxx,xxx) 这种语法是通不过的
(3)foreach标签中需要取掉括号,加入select …from dual.
<insert id="usersAddAll" parameterType="list" useGeneratedKeys="false">
// useGeneratedKeys="false" 有人说加入这个也能解决批量插入,我没试过