【实践】jdbc批量插入数据
参考文献:http://my.oschina.net/u/1452675/blog/203670
http://superjavason.iteye.com/blog/255423
/*测试批量写入数据*/
long start = System.currentTimeMillis();
DaoRecord daoRecord = new DaoRecord();
List<T> list = new ArrayList<T>();
for(int i = 1; i <= 1000; i++){
for(int j = 1; j <= 1000; j++){
T t = new T();
t.setI(i);
t.setJ(j);
list.add(t);
}
}
daoRecord.InsertBatch(list);
System.out.println("耗时:" + (System.currentTimeMillis()-start)+"毫秒");
//批量写入数据测试
public void InsertBatch(List<T> list){
String sql = "insert into t(go,back) values(?,?)";
DBHelper dbh = new DBHelper(sql);
Connection conn = dbh.returnConn();
try {
conn.setAutoCommit(false);//注意此句一定要为false,原因见第一篇参考文献
PreparedStatement ps = conn.prepareStatement(sql);
for(int i = 0; i < list.size(); i++){
ps.setInt(1, list.get(i).getI());
ps.setInt(2, list.get(i).getJ());
ps.addBatch();
if (i % 10000 == 0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
conn.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
数据表:

实验结果:

【实践】jdbc批量插入数据的更多相关文章
- JDBC批量插入数据优化,使用addBatch和executeBatch
JDBC批量插入数据优化,使用addBatch和executeBatch SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢? 解决方案:用 preparedSta ...
- MySQL:JDBC批量插入数据的效率
平时使用mysql插入.查询数据都没有注意过效率,今天在for循环中使用JDBC插入1000条数据居然等待了一会儿 就来探索一下JDBC的批量插入语句对效率的提高 首先进行建表 create tabl ...
- JDBC批量插入数据效率分析
对于需要批量插入数据库操作JDBC有多重方式,本利从三个角度对Statement和PreparedStatement两种执行方式进行分析,总结较优的方案. 当前实现由如下条件: 执行数据库:Mysql ...
- jdbc批量插入数据
//插入很多书(批量插入用法) public void insertBooks(List<Book> book) { final List<Book> tempBook=b ...
- Java使用JDBC连接数据库逐条插入数据、批量插入数据、以及通过SQL语句批量导入数据的效率对比
测试用的示例java代码: package com.zifeiy.test.normal; import java.io.File; import java.io.FileOutputStream; ...
- JDBC(五)—— 批量插入数据
批量插入数据 @Test public void testInsert() throws Exception { Connection conn = null; PreparedStatement p ...
- 批量插入数据(基于Mybatis的实现-Oracle)
前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. -------------------------------- ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- Java 批量插入数据(Oracle)
//批量添加20000条数据用时8秒. try { String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...
随机推荐
- 第二章--Win32程序运行原理 (部分概念及代码讲解)
学习<Windows程序设计>记录 概念贴士: 1. 每个进程都有赋予它自己的私有地址空间.当进程内的线程运行时,该线程仅仅能够访问属于它的进程的内存,而属于其他进程的内存被屏蔽了起来,不 ...
- 硅谷新闻4--解决页签手指按下从左到右滑动的bug
有一种方法可以阻止父层的View截获touch事件,就是调用 getParent().requestDisallowInterceptTouchEvent(true);方法.一旦底层View收到tou ...
- wap网站safari浏览器和微信cooke不能登录问题
wap网站safari浏览器cooke不能登录问题: http://wenku.baidu.com/link?url=VnPxl43PySYVygt09vkQ7xwxOD0JCXNtw3Fx7100j ...
- [简介]HTML5 and CSS3
一.HTML51.语义标签与新增表单控件标签更加语义化headerfooterarticle等 还增加了许多表单控件记得有:进度条,颜色选择,日期等 2.音频,视频标签关键字:audiovideo 他 ...
- PHP写日志函数
初学,写一个函数用于存储日志调试. function WriteLog($msg) { $filename = dirname(__FILE__) ."\\Debug.log"; ...
- js阻塞
阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),JS单线程避免阻塞方法: 1.sleep()方法:sleep()允许指定以毫秒为单位的一段时间作为参数,使得线程在指定的时间内进入阻塞状 ...
- CRM ribbon按钮上引用JS库
在CRM ribbion 按钮上引用 javascript库文件实验,怎么要引用javascript库文件.实验 加载完ribbbion 按钮后立即执行 引用的库文件 (function(){ ale ...
- Android-将RGB彩色图转换为灰度图
package com.example.yanlei.wifi; import android.graphics.Bitmap; import android.graphics.BitmapFacto ...
- 通过重写OnScrollListener来监听RecyclerView是否滑动到底部
为了增加复用性和灵活性,我们还是定义一个接口来做监听滚动到底部的回调,这样你就可以把它用在listview,scrollView中去. OnBottomListener package kale.co ...
- IOS中程序如何进行推送消息(本地推送,远程推送)2(上)
未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...