@Autowired
private SqlSessionFactory sqlSessionFactory;
@org.junit.Test
public void test2(){
SqlSession session =sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
Info3dModelUserdataMapper userDataMapper3= session.getMapper(Info3dModelUserdataMapper.class);
long time1=System.currentTimeMillis();
List<Info3dModelUserdata> list=new ArrayList<>();
for(int i=40000;i>0;i--){
list.add(new Info3dModelUserdata(null,i+"", i+"", i+""));
if(i%500==0){
userDataMapper3.insertBatchByList(list);
list.clear();
}
}
int i=userDataMapper3.insertBatchByList(list);
System.out.println(System.currentTimeMillis()-time1+"——耗时");
System.out.println("返回结果:"+i);
} catch (Exception e) {
e.printStackTrace();
}finally{
session.commit();
session.close();
}
}
<!-- 批量插入 -->
<insert id="insertBatchByList">
insert into info3d_model_userdata (eid, model_id, element_id,
body)
values
<foreach collection="list" index="l" item="record" separator="," close=";">
(#{record.eid}, #{record.modelId},#{record.elementId},#{record.body})
</foreach>
</insert>