List<Emp> emps = new ArrayList<Emp>();
Emp emp = new Emp();
emp.setEmpid(225);
emp.setEmpname("黄文韬!!!");
Dep dep = sqlSessionTemplate.selectOne("hwt.Mapper.DepMapper.selectPK", 1);
emp.setDep(dep);
emps.add(emp);
Emp emp2 = new Emp();
emp2.setEmpid(153);
emp2.setEmpname("黄文韬!!!@@@");
Dep dep2 = sqlSessionTemplate.selectOne("hwt.Mapper.DepMapper.selectPK", 1);
emp2.setDep(dep2);
emps.add(emp2);
sqlSessionTemplate.update("hwt.Mapper.EmpMapper.insertBatch", emps);
<!-- 批量插入 -->
<insert id="insertBatch" parameterType="arraylist">
insert into emp(empid,empname,depid)
<!-- collection可以是List对于list,数组对于array,Map对应ids -->
<foreach collection="list" item="emp" index="index" separator="union all">
select #{emp.empid,jdbcType=NUMERIC},#{emp.empname,jdbcType=VARCHAR},#{emp.dep.depid,jdbcType=NUMERIC} from dual
</foreach>
</insert>