今天学了一个批量添加的一个方法
Connection conn=加载连接数据库.
InputStream ips=new FileInputStream("文件路径");
Reader reader=new InputStream(ips);
BufferedReader bffr=new BufferedReader(reader);
PreparedStatement ppst=conn.prepareStatement("执行语句");
ResultSet rs=ppst.executeQuery();
conn.setAutoCommit(false);// 关闭自动提交.事务
bffr.readLine();//去掉表头.
String ling;
int number=0;
while((line=bffr.readLine())!=null)//line=bffr.readLine()当为空时line=null.
{
String [] newline=line.split(",");
String phoneNumber1=newline[1].replace("\"", "");
String phoneNumber=phoneNumber1.substring(0, 6);
String Areaplace=newline[2].replace("\"", "");
String NumberType=newline[3].replace("\"", "");
System.out.println("手机前六位"+phoneNumber+",地区:"+Areaplace+",运营商类型:"+NumberType);
ppst.clearParameters();//ppst.clearBatch();/////////////////////清楚前面的参数
ppst.setString(1, phoneNumber1);
ppst.setString(2, Areaplace);
ppst.setString(3, NumberType);
ppst.addBatch(); //////////////////////批量提交
number++;
if(number%500==0)
{
ppst.executeBatch();
}
}
ppst.executeBatch();
conn.commit();
System.out.println("导入成功");
long endms=System.currentTimeMillis();
System.out.println("执行耗时:"+(endms-startms)+"毫秒");
}
利用POI类来加载exl表格.exl表格相当于是一个sheet表的集合.里面有几个sheet就有几张表.然后按照 行.没一行的cell来获取数据.通过for循环可以遍历数据.
然后通过
ppst.clearParameters();//清楚之前的参数.
ppst.setString(1, ""+i);
ppst.setString(2, id1);//第一个参数代表id1
ppst.setString(3, dz);//第二个参数代表dz
ppst.addBatch();//装到箱子里
来遍历 写入到数据库中.//////////刚开始感觉这个方法挺笨的.
// HSSFWorkbook wb=new HSSFWorkbook();创建一个wookbook文件用来收集exl的信息
// sql="C:\\Users\\Administrator\\Desktop\\新建文件夹\\MySQL基础和JDBC\\身份证所在地.xls"
// 表的路径
// HSSFSheet sheet=wb.createSheet("Sheet1");//创建表1
// HSSFRow row=sheet.createRow(0);//创建每一列
// HSSFCell cell=row.createCell(0);//创建每一格子
InputStream ips = null;
Connection conn = null;
PreparedStatement ppst = null;
ResultSet rs = null;
try
{
ips = new FileInputStream("C:\\Users\\Administrator\\Desktop\\新建文件夹\\MySQL基础和JDBC\\身份证所在地.xls");
conn = JdbcUtils.createConnection();
ppst = conn.prepareStatement("Insert into t_idnumber(Id,id1,dz)values(?,?,?)");
conn.setAutoCommit(false);
long sms = System.currentTimeMillis();
HSSFWorkbook wb = new HSSFWorkbook(ips);//建立文件夹获取ips的字节流.
Sheet sht = wb.getSheetAt(0);//获得第一张表的信息
int number = 0;
for (int i = 1; i < sht.getLastRowNum() + 1; i++)// 遍历第一张表的每一行的数据直到最后一行.
{
Row r = sht.getRow(i);
原文:http://www.cnblogs.com/yqwstart2017/p/7223286.html