mybatis mysql 导入_MyBatis Mysql 批量插入
我們在開發中常常會遇到把大量的數據插入到數據的情況,逐條插入到mysql中效率很低,具體參考?http://tech.uc.cn/?p=634
我們這里采用 insert into values(),();這種方式來提高效率。
下面以1000條批量插入一次,來做示例。
java:
List acBdHourList = acBdHourMapper.selectByTsAndMac(params);
List pgAcBdHourList = new ArrayList();
int insertCount = 0;
for(AcBdHour acBdHour:acBdHourList){
PgAcBdHour pgAcBdHour = new PgAcBdHour();
// 設置pgAcBdHour的各個屬性
pgAcBdHourList.add(pgAcBdHour);
if(pgAcBdHourList.size()==1000||
(acBdHourList.size()-insertCount*1000==pgAcBdHourList.size())){// 滿1000條,或者最后一次
pgAcBdHourMapper.insertBatch(pgAcBdHourList);
pgAcBdHourList.clear();
insertCount++;
}
}
把acBdHourList中的數據處理后,批量插入到PgAcBdHour中。
Mybatis:
insert into pg_ac_bd_hour
(duration, consumption,
deviceType, mac, ts,
userAccount, userid, province_id,
city_id, county_id, province_name,
city_name, county_name, address,
create_time, status, is_sum)
values
(#{item.duration}, #{item.consumption}, #{item.devicetype}, #{item.mac}, #{item.ts},
#{item.useraccount}, #{item.userid},#{item.provinceId}, #{item.cityId},
#{item.countyId}, #{item.provinceName}, #{item.cityName}, #{item.countyName},
#{item.address}, #{item.createTime}, #{item.status}, #{item.isSum})
一次插入1000條還是10000條,效率更高我未做測試。
總結
以上是生活随笔為你收集整理的mybatis mysql 导入_MyBatis Mysql 批量插入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java cursor 删除_使用Cur
- 下一篇: mysql 设置中文 重启_如何启动/停