MySQL默认是关闭批处理的,所以我们在默认状态下(批处理未打开)向数据库中存入10000条数据,核心代码如下:

package cn.itcast.demo5;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.junit.Test;
import cn.itcast.demo3.JdbcUtils;
public class Demo5 {
@Test
public void fun5() throws SQLException {
/*
* pstmt:
* > 添加参数到批中
* > 执行批!
*/
Connection con = JdbcUtils.getConnection();
String sql = "INSERT INTO t_stu VALUES(?,?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql); // 疯狂的添加参数
for(int i = 0; i < 10000; i++) {
pstmt.setInt(1, i+1);
pstmt.setString(2, "stu_" + i);
pstmt.setInt(3, i);
pstmt.setString(4, i%2==0?"男":"女");
pstmt.addBatch();//添加批!这一组参数就保存到集合中了。
}
long start = System.currentTimeMillis();
pstmt.executeBatch();//执行批!
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}

上述程序执行结束耗费时间412764MS

这是打开MySQL的批处理,打开方式:

  将MySQL参数  url=jdbc:mysql://localhost:3306/exam

  改为        url=jdbc:mysql://localhost:3306/exam?rewriteBatchedStatements=true

再次执行程序,耗时301MS,速度快了1000倍以上!

最新文章

  1. .NET跨平台之Sake和KoreBuild
  2. bower 问题
  3. Node.js在不同平台的安装方法步骤详解
  4. vbs脚本总结
  5. C++学习基础三——迭代器基础
  6. CorelDRAW中拆清除调和效果的技巧
  7. leetcode:Reverse Integer(一个整数反序输出)
  8. 【搜索】BZOJ 3990: 【Sdoi 2015】排序
  9. UNIX环境下的消息队列
  10. 秒味课堂Angular js笔记------Angular js中的工具方法
  11. android studio签名
  12. 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
  13. Java基础系列-Stream
  14. 解决TCPDF中文乱码,PHP
  15. 易忘&amp;有用 的冷门Anaconda命令
  16. SpringBoot应用War包形式部署到外部Tomcat
  17. share_ptr_c++11
  18. Javascript中快速退出多重循环的技巧
  19. 每日英语:China to Move Slowly on One-Child Law Reform
  20. [转]WPF入口Application

热门文章

  1. ios block中引用self
  2. [Usaco2015 Feb]Censoring(bzoj 3942)
  3. Sightseeing(poj 3463)
  4. IOS8下,百度地图无法定位解决办法
  5. React Native实例之房产搜索APP
  6. UVA 111 History Grading
  7. 两个viewport的故事(第二部分)
  8. 注意kvm在安装虚机的时候不能把存放虚机的文件放在/root 下面
  9. AXURE在原型设计中的应用
  10. Delphi线程简介---Create及其参数、Resume、Suspend