记录一下项目中Mybatis实现批量插入数据的操作

long start1 = System.currentTimeMillis();
List field_list = new ArrayList();
List list = new ArrayList();
// 对上传的文件进行解析
int n = GetSJ_Info.readTxtFile(filepath, field_list);
long end1 = System.currentTimeMillis();
log.debug("read time sum: " + (end1 - start1));
// i为第几行
long start = System.currentTimeMillis();
// 将解析后的数据插入到sj_info数据库中
boolean add = false;
for (int i = 0; i < n; i++) {
//这里的对象需要放在for循环里面
DNA_Data data1 = new DNA_Data();
data1.setSample_file(field_list.get(i)[0]);
data1.setSample_id(field_list.get(i)[1]);
data1.setSj_info(field_list.get(i)[2]);
data1.setLoca(field_list.get(i)[3]);
data1.setGenotype1(field_list.get(i)[4]);
data1.setGenotype2(field_list.get(i)[5]);
// add = dataService.addDNA(data1);
//将对象添加到集合中
list.add(data1);
}
// 批量插入数据库
add = dataService.insertMult(list);
long end = System.currentTimeMillis();


log.debug("insert time sum: " + (float) ((end - start) / 1000) + "s");// 这里时间太 长了,需要做到批量处理,最终时间是0.05s


下面贴上XXXMapper.xml代码



                                 order= "AFTER">
                 SELECT LAST_INSERT_ID()
             

          insert into sj_info (sample_file, sample_id, sj_info, loca,genotype1,genotype2) values
             
                (#{item.sample_file},#{item.sample_id},#{item.sj_info},#{item.loca},#{item.genotype1}, #{item.genotype2})
             

     

在此记录一下,也给跟我一样不会的小白学习一下

你可能感兴趣的:(记录帖)