Mybatis 执行批量插入 10W 4.8s
来源:互联网 发布:如何用微博推广淘宝 编辑:程序博客网 时间:2024/05/22 18:23
本数据查询插入是从2个不同数据源处理
model:
public class AlarmLog implements Serializable{ private static final long serialVersionUID = 1L; private int id; private int devId; private int cvs; private Date createDate; public AlarmLog(){ super(); } public void setId(int id) { this.id = id; } public int getId() { return id; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public Date getCreateDate() { return createDate; } public void setCvs(int cvs) { this.cvs = cvs; } public int getCvs() { return cvs; } public int getDevId() { return devId; } public void setDevId(int devId) { this.devId = devId; }}
mapper.xml
mapper namespace="com.ding.dao.one.AlarmDao"> <!--结果集--> <resultMap id="alarmMap" type="com.ding.pojo.AlarmLog"> <id property="id" column="id"/> <result property="devId" column="devId"/> <result property="cvs" column="cvs"/> <result property="createDate" javaType="java.util.Date" column="createDate"/> </resultMap> <insert id="addBatch" parameterType="com.ding.pojo.AlarmLog" > insert into db_system.t_alarm_log(devId,cvs,createDate) values <foreach collection="list" item="alarm" index="index" separator=","> (#{alarm.devId},#{alarm.cvs}, curdate()) </foreach> </insert></mapper>
dao interface:
public interface AlarmDao { int add(AlarmLog alarmLog); int addBatch(List list);}
@Service("alarmLogService")public class AlarmLogService { @Autowired private AlarmLogDao alarmLogDao; public List<AlarmLog> getAlarm() { return this.alarmLogDao.getAlarm(); } public List<AlarmLog> getAlarmData(int day_limit, int less) { Map map = new HashMap<>(); map.put("day_limit", day_limit); map.put("less", less); return this.alarmLogDao.getAlarmData(map); } @Autowired private AlarmDao alarmDao; public int addBatch(List list){ return alarmDao.addBatch(list); }}
@Test public void addBatch(){ long time = System.currentTimeMillis(); System.out.println(" 启动时间:"+time); Map map = this.warningService.getWarning(); System.out.println(" 查询一条数据时间:"+String.valueOf(time-System.currentTimeMillis())); int day_limit = (int)map.get("day_limit"); int less = (int)map.get("less"); System.out.println(day_limit+","+less); long time2 = System.currentTimeMillis(); System.out.println(" 启动时间:"+time2); List<AlarmLog> list =this.alarmLogService.getAlarmData(day_limit,less); System.out.println(" 查询"+list.size()+"数据时间:"+String.valueOf(time2-System.currentTimeMillis())); System.out.println("list =="+list.size()); long time3 = System.currentTimeMillis(); System.out.println(" 启动时间:"+time3); int size = alarmLogService.addBatch(list); System.out.println(" 批量插入"+list.size()+"数据时间:"+String.valueOf(System.currentTimeMillis()-time3)); System.out.println("size=="+size); }
启动时间:1468226066491 查询一条数据时间:-11530,500 启动时间:1468226066606 查询92414数据时间:-747list ==92414 启动时间:1468226067353 批量插入92414数据时间:-4822size==92414
0 1
- Mybatis 执行批量插入 10W 4.8s
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- mybatis批量插入、批量删除
- Mybatis 批量插入、批量更新
- Mybatis-批量查询&&批量插入
- mybatis数据批量插入
- mybatis 批量插入
- mybatis批量插入
- mybatis数据批量插入
- mybatis 批量插入
- mybatis 批量插入
- mybatis批量插入数据
- Android 跨进程内存泄露
- Gradle知识巩固
- Eclipse4.5.1 Mars C++11 编译出错解决方法
- ui笔记1
- Activiti学习——Activiti与Spring集成
- Mybatis 执行批量插入 10W 4.8s
- ARM-linux汇编常用语法
- 非递归的归并排序
- C语言动态数组原理及实现
- 【SSH视频】--- spring中的事务和hibernate中的session应用
- Jmeter测试Java请求示例
- linux crontab命令用法
- IONIC----02.ionicBackdrop
- android中Context的作用