用java快速批量insert数据
2016-01-31 15:36
603 查看
由于要项目准备上线,所以要准备大量测试数据测试新项目的性能,但是又不太会用存储过程和数据库事务进行数据插入。
最开始使用最简单的java的for循环语句不停的add对象,但是发现这个效率太低,要插入几百万数据估计得一天,于是在网上找了下,找到一篇直接使用jdbc直接插入数据的,拿下来试了下发现性能虽然比new对象好,但是效率也很低。
只能再找,终于找到一个很高的,也就是使用批次提交方式的sql执行,这个100万数据大概也就30秒左右。
[java]
view plain
copy
print?
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
public static void insertRelease() {
Long begin = new Date().getTime();
String sql = "INSERT INTO tb_big_data (count, create_time, random) VALUES (?, SYSDATE(), ?)";
try {
conn.setAutoCommit(false);
PreparedStatement pst = conn.prepareStatement(sql);
for (int i = 1; i <= 100; i++) {
for (int k = 1; k <= 10000; k++) {
pst.setLong(1, k * i);
pst.setLong(2, k * i);
pst.addBatch();
}
pst.executeBatch();
conn.commit();
}
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
Long end = new Date().getTime();
System.out.println("cast : " + (end - begin) / 1000 + " s");
}
原文地址:http://blog.csdn.net/frinder/article/details/38830723
最开始使用最简单的java的for循环语句不停的add对象,但是发现这个效率太低,要插入几百万数据估计得一天,于是在网上找了下,找到一篇直接使用jdbc直接插入数据的,拿下来试了下发现性能虽然比new对象好,但是效率也很低。
只能再找,终于找到一个很高的,也就是使用批次提交方式的sql执行,这个100万数据大概也就30秒左右。
[java]
view plain
copy
print?
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
public static void insertRelease() {
Long begin = new Date().getTime();
String sql = "INSERT INTO tb_big_data (count, create_time, random) VALUES (?, SYSDATE(), ?)";
try {
conn.setAutoCommit(false);
PreparedStatement pst = conn.prepareStatement(sql);
for (int i = 1; i <= 100; i++) {
for (int k = 1; k <= 10000; k++) {
pst.setLong(1, k * i);
pst.setLong(2, k * i);
pst.addBatch();
}
pst.executeBatch();
conn.commit();
}
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
Long end = new Date().getTime();
System.out.println("cast : " + (end - begin) / 1000 + " s");
}
原文地址:http://blog.csdn.net/frinder/article/details/38830723
相关文章推荐
- java 8 默认方法和多继承
- Simple Java—Compiler and JVM(一)Java对象运行时的内存结构
- Eclipse打开Package Explorer
- java日志记录的5条规则
- eclipse中查找文件
- java日志记录的5条规则
- Java读取properties文件中文乱码问题解决
- ajax SpringMVC如何返回json
- java 数字格式化:小数点、百分比 NumberFormat Decimalformat
- java入门实例之小试牛刀--利用Scanner制作个人简历
- java入门实例之小试牛刀--利用Scanner制作个人简历
- SSH框架-Struts如何实现MVC
- JavaSE入门学习20:Java面向对象之接口(interface)(一)
- java垃圾回收机制详解
- java dyn proxy
- Java&Xml教程(十)XML作为属性文件使用
- Java&Xml教程(十)XML作为属性文件使用
- Java&Xml教程(十)XML作为属性文件使用
- java_Excel 导出
- java 获取当期时间之前几小时的时间