java_270_JDBC_批处理Batch_插入2万条数据的测试_练习
JDBC详细操作
package java_270_JDBC_批处理Batch_插入2万条数据的测试_练习;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
-
测试批处理的基本用法
*/
public class Demo05 {
public static void main(String[] args) {
//声明
Connection conn =null;
Statement stmt =null;//用这个保险些;用PreparedStatement可能预编译空间出问题,报异常
ResultSet rs = null;
try {
//加载驱动类
Class.forName(“com.mysql.jdbc.Driver”);
//连接数据库
conn = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/testjdbc?useSSL=false&characterEncoding=UTF-8”,“root”,“www4152276”);
conn.setAutoCommit(false);//设为手动提交
//查看运行效率
long start = System.currentTimeMillis();//开始时间
//创建对象
stmt = conn.createStatement();//createStatement创建语句
for(int i=0;i<20000;i++){
stmt.addBatch(“insert into t_user(username,pwd,regTime) values ('gao”+i+"’,6666,now())");//i代表顺序号
}
//执行处理
stmt.executeBatch();//executeBatch执行批处理
conn.commit();//提交事务
long end = System.currentTimeMillis(); //结束时间
System.out.println(“运行20000条数据,耗时时间:”+(end-start)+“ms”);} catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { //关闭遵循先进后关原则;一定要分开关闭,这样出现异常不影响后面的程序执行 if(rs!=null){ try { rs.close();//关闭 } catch (SQLException e) { e.printStackTrace(); } } if(stmt!=null){ try { stmt.close();//关闭 } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close();//关闭 } catch (SQLException e) { e.printStackTrace(); } } }
}
}
//------------------------结果------------------
数据库批处理成功