1.批量插入保存的方法:
SELECT
LAST_INSERT_ID()insert into regist_code (phone, code, createTime,status)
values(#{item.phone}, #{item.code},now(),0)
数据库表结构是:
我的mode类是:
package com.hyhl.model;
import java.sql.Timestamp;
/**
* 注冊时候验证码
* @author hyhl_wyf
*
*/
public class RegistCodeModel {
private int id;
private String phone;
private String code;
private int status;//状态0有效、1无效
private Timestamp createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Timestamp getCreateTime() {
return createTime;
}
public void setCreateTime(Timestamp createTime) {
this.createTime = createTime;
}
}
测试的controller:
@RequestMapping(value = "/getRegistPhoneCodeBatch")public @ResponseBody String getBatchRegistPhoneCode(intnum, HttpServletRequest request) {
List list=new ArrayList();
String startTi=DateTimeUtil.getFormatDateTime( newjava.util.Date());
System.out.println("开始时间:"+startTi);for(int i=0;i
RegistCodeModel model= newRegistCodeModel();
model.setCode(RandomUtil.getRandString(6));
model.setPhone("18037022633");
list.add(model);
}
String startTi1=DateTimeUtil.getFormatDateTime( newjava.util.Date());
System.out.println(num+"条封装完List时间:"+startTi1);
registCodeMapper.addTrainRecordBatch(list);
String startTi2=DateTimeUtil.getFormatDateTime( newjava.util.Date());
System.out.println(num+"条插入结束时间:"+startTi2);return "true";
}
测试的结果是:
-------------------10000条插入----------
开始时间:2018-04-27 17:46:08
10000条封装完List时间:2018-04-27 17:46:08
10000条插入结束时间:2018-04-27 17:46:08
------------50000条插入------------------------
开始时间:2018-04-27 17:46:33
50000条封装完List时间:2018-04-27 17:46:33
50000条插入结束时间:2018-04-27 17:46:34
------------------------------------
可以看出,插入5条也只是用了1s的时间。
比一条一条的插入快多了。