此为个人做笔记使用,不多废话,看代码
package com.de.demo;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Test {
public static String txtfileString(File file){
Test test = new Test();
StringBuilder result = new StringBuilder();
try{
BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
String s = null;
int i=0;
List<String> dataList =new ArrayList<String>();//数据信息集合
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
//
i++;
String[] split = s.split("\\s+");
phoneList.add(split[0]); //添加手机信息
String data="";
for (int j = 1; j < split.length; j++) {
data=data+split[j];
}
dataList.add(data); //将读取的数据添加数据list。准备预处理
if (i%1000==0){
System.out.println(i);可在此处每一千次进行预处理
tets.insert(dataList);
}
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result.toString();
}
public static void main(String[] args){
File file = new File("/Users/lixuejun/work/IT/work/POC富数/test/tags_random_result.txt");
txtfileString(file);
}
public void insert( List<String> dataList){
try {
conn.setAutoCommit(false);
Long beginTime = System.currentTimeMillis();
//构造预处理statement
PreparedStatement pst = conn.prepareStatement("insert into t1(id) values (?)");
//1万次循环
for(int i=1;i<= dataList.size;i++){
pst.setInt(1, i);
pst.addBatch();
//每1000次提交一次
if(i%1000==0){//可以设置不同的大小;如50,100,500,1000等等
pst.executeBatch();
conn.commit();
pst.clearBatch();
}
}
Long endTime = System.currentTimeMillis();
System.out.println("pst+batch:"+(endTime-beginTime)/1000+"秒");
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}