教你如何6秒钟往MySQL插入100万条数据的实现
一、思路
往MySQL中插入1000000条数据只花了6秒钟!
关键点:
1.使用PreparedStatement对象
2.rewriteBatchedStatements=true开启批量插入,插入只执行一次,所有插入比较快。
二、代码
packagetest0823.demo1;
importjava.sql.*;
/**
*@author:Bei-Zhen
*@date:2020-08-240:43
*/
publicclassJDBC2{
//staticintcount=0;
publicstaticvoidmain(String[]args){
longstart=System.currentTimeMillis();
conn();
longend=System.currentTimeMillis();
System.out.println("耗时:"+(end-start)/1000+"秒");
}
publicstaticvoidconn(){
//1.导入驱动jar包
//2.注册驱动(mysql5之后的驱动jar包可以省略注册驱动的步骤)
//Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
Connectionconn=null;
PreparedStatementpstmt=null;
{
try{
//"&rewriteBatchedStatements=true",一次插入多条数据,只插入一次
conn=DriverManager.getConnection("jdbc:mysql:///test?"+"&rewriteBatchedStatements=true","root","root");
//4.定义sql语句
Stringsql="insertintouservalues(default,?,?)";
//5.获取执行sql的对象PreparedStatement
pstmt=conn.prepareStatement(sql);
//6.不断产生sql
for(inti=0;i<1000000;i++){
pstmt.setString(1,(int)(Math.random()*1000000)+"");
pstmt.setString(2,(int)(Math.random()*1000000)+"");
pstmt.addBatch();
}
//7.往数据库插入一次数据
pstmt.executeBatch();
System.out.println("添加1000000条信息成功!");
}catch(SQLExceptione){
e.printStackTrace();
}finally{
//8.释放资源
//避免空指针异常
if(pstmt!=null){
try{
pstmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
}
}
}
三、运行结果
添加1000000条信息成功!
耗时:6秒
到此这篇关于教你如何6秒钟往MySQL插入100万条数据的实现的文章就介绍到这了,更多相关MySQL插入100万条数据内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。