jdbctemplate批量添加数据
程序员文章站
2022-07-13 13:15:13
...
package com.zjxt.jszxdata2.service.impl;
import com.zjxt.jszxdata2.service.SaveDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@Service
@Transactional
public class SaveDataServiceImpl implements SaveDataService {
private static final SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.0");
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void saveFlagData(String path) throws Exception {
path="E:"+path+".txt";
System.out.println(path);
//创建文件对象
File file=new File(path);
//获取字节流对象
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"));
String sql="insert into T_JSZX_SF_FLAG_SS (FLAGID,ROADID,STATIONID1,STATIONID2,MILES1,MILES2,OPFLAG,LASTVER,VERUSETIME,OPER,OPTIME,OGGTIME) values (?,?,?,?,?,?,?,?,?,?,?,?)";
List<Object []> args=new ArrayList<>();
int count=0;
while (true){
String line = br.readLine();
if (null==line){
break;
}
//B78^186^712^713^7553^7000^0^19011801^2019-01-18 12:00:00.0^admin^2019-01-18 19:01:14.63^2019-01-18 19:02:27.0
String[] strs = line.split("\\^");
args.add(new Object[]{strs[0],strs[1],strs[2],strs[3],strs[4],strs[5],strs[6],strs[7],strs[8],strs[9],strs[10],strs[11]});
if (args.size()>5000){
jdbcTemplate.batchUpdate(sql,args);
args.clear();
}
count++;
}
//循环完之后,如果集合还有数据,也要进行添加
if (args.size()>0){
jdbcTemplate.batchUpdate(sql,args);
args.clear();
}
System.out.println("存储"+path+"数据成功"+count);
}
@Override
public void saveORGCodeData(String path) throws IOException {
path="E:"+path+".txt";
System.out.println(path);
//创建文件对象
File file=new File(path);
//获取字节流对象
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"));
String sql="insert into T_JSZX_SF_FLAG_SS (FLAGID,ROADID,STATIONID1,STATIONID2,MILES1,MILES2,OPFLAG,LASTVER,VERUSETIME,OPER,OPTIME,OGGTIME) values (?,?,?,?,?,?,?,?,?,?,?,?)";
List<Object []> args=new ArrayList<>();
int count=0;
while (true){
String line = br.readLine();
if (null==line){
break;
}
//B78^186^712^713^7553^7000^0^19011801^2019-01-18 12:00:00.0^admin^2019-01-18 19:01:14.63^2019-01-18 19:02:27.0
// String[] strs = line.split("\\^");
//
// args.add(new Object[]{strs[0],strs[1],strs[2],strs[3],strs[4],strs[5],strs[6],strs[7],strs[8],strs[9],strs[10],strs[11]});
//
// if (args.size()>5000){
// jdbcTemplate.batchUpdate(sql,args);
// args.clear();
// }
count++;
}
//循环完之后,如果集合还有数据,也要进行添加
// if (args.size()>0){
// jdbcTemplate.batchUpdate(sql,args);
// args.clear();
// }
System.out.println("存储"+path+"数据成功"+count);
}
}