JDBC之批处理
JDBC之批处理
现在有这么一个需求,要求把2000条记录插入表中,如果使用java代码来操作,我们可以使用Statement或者PreparedStatement来实现,通过循环来把SQL语句一条又一条地发送给数据库处理。我们知道,数据库处理SQL速度是非常快的,如果传输速度慢,跟不上处理速度,那么数据库就会出现等待现象。为了解决这个办法,我们可以一次发送多个SQL语句给数据库处理,这样就能增加效率,这时候我们就要用到批处理技术。
然而,批处理也可以通过Statement和Preparement来实现,要用到的主要方法如下:
Statement批处理操作:
void addBatch(String sql) --把SQL语句加到批处理缓冲区中
int[] executeBatch() --执行SQL缓冲区中的所有语句
void clearBatch() --清空缓存区中的所有SQL语句
PreparedStatement操作:
void addBatch(String sql) --把一组参数加到参数缓冲区中
int[] executeBatch() --执行SQL缓冲区中的所有参数组
void clearBatch() --清空缓存区中的所有参数组
下面就演示一下这些方法的用法吧~
利用Statement
@Test
public void batchTest() throws Exception{
//调用工具类获取连接
connection = sqlUtil.getconnection(); //生成Statemnt对象
Statement statement = connection.createStatement(); //把若干条SQL语句放到缓冲区中
for(int i=1;i<=200;i++){
//准备sql语句
String sql = "insert into worker(wid,wname) values("+i+",'张三"+i+"')";
//添加到缓冲区
statement.addBatch(sql); if(i%20==0){
System.out.println("共"+ i +"条语句插入了表中");
//缓存区有20条指令时执行
statement.executeBatch();
//执行完清空缓存区
statement.clearBatch();
}
}
//关闭连接
sqlUtil.close(statement, connection);
}
利用PreparedStatement
public void batchTest2() throws Exception{
//调用工具类获取连接
connection = sqlUtil.getconnection();
//生成Statemnt对象
PreparedStatement prepS = connection.prepareStatement("insert into worker(wid,wname) values(?,?)");
//把若干条SQL语句放到缓冲区中
for(int i=1;i<=200;i++){
//设置参数
prepS.setObject(1, i);
String wname = "李四"+i;
prepS.setObject(2, wname);
//添加到缓冲区
prepS.addBatch();
if(i%20==0){
System.out.println("共"+ i +"条语句插入了表中");
//缓存区有20条指令时执行
prepS.executeBatch();
//执行完清空缓存区
prepS.clearBatch();
}
}
//关闭连接
sqlUtil.close(prepS, connection);
}
以上就是利用JDBC实现批处理了~
如果想要执行效率最快,我们应该使用 prepareStatemnt + 批处理 这样的方式来执行多条SQL语句。
JDBC之批处理的更多相关文章
- JDBC的批处理操作三种方式 pstmt.addBatch()
package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...
- JDBC进行批处理
转自 http://mousepc.iteye.com/blog/1131462 业务场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升 ...
- 使用JDBC进行批处理
在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...
- JavaWeb学习总结(十一)--JDBC之批处理
一.批处理的介绍 在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率.批处理只针对更新(增.删.改)语句,批 ...
- javaweb学习总结(三十六)——使用JDBC进行批处理
在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...
- JDBC的批处理操作三种方式
SQL批处理是JDBC性能优化的重要武器,批处理的用法有三种. package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import ...
- JavaWeb学习笔记(十五)—— 使用JDBC进行批处理
一.什么是批处理 批处理就是一批一批的处理,而不是一个一个的处理! 当你有10条SQL语句要执行时,一次向服务器发送一条SQL语句,这么做效率上很差!处理的方案是使用批处理,即一次向服务器发送多条SQ ...
- JDBC进行批处理Batch
在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...
- (十七)使用JDBC进行批处理
目录 业务场景: 第一种方式 第二种方式 批处理中的 update() 方法 注意事项 备注: 业务场景: 当需要向数据库中发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的 ...
随机推荐
- 配置使用 NTP
1. 安装chrony(时间同步客户端) ubuntu/debian: apt-get install chrony Centos/redhat/alios: yum install chrony 2 ...
- java生成棋盘
第一步:新建java项目,具体的命名,看下面的文件结构. 第二步:代码区 DrawChessBoard类: package com.hp.chenyanlong; import java.awt.Gr ...
- 「Vue」父子组件之间的传值及调用方法
a.父组件向子组件传值data(){},props数据区别data中的数据可读可写,是自己的数据props是个数组,中的数据是父组件传递过来的,只读不能写<login :dmsg='msg'&g ...
- Easy2Boot-小清新教程
Author:KillerLegend Date:2014.8.14 From:http://www.cnblogs.com/killerlegend/p/3913614.html 之所以说是小清新, ...
- POJ - 2299 Ultra-QuickSort(归并排序)
https://vjudge.net/problem/POJ-2299 题意 求对于给定的无序数组,求出经过最少多少次相邻元素的交换之后,可以使数组从小到大有序. 分析 很明显是求逆序对的数目,那就要 ...
- [转载] PNG优化插件:TinyPNG for Photoshop CC
http://www.im286.com/thread-14922316-1-1.html http://www.tinypng.com的PS插件版,优化.无损压缩PNG,支持批量处理,据说只支持Ph ...
- [转载]Web API OData Inlinecount not working
http://stackoverflow.com/questions/15422831/web-api-odata-inlinecount-not-working
- 20145234黄斐《Java程序设计》第八周
教材学习内容总结 第十四章-NIO与NIO2 NIO与IO的区别 NIO Channel继承框架 想要取得Channel的操作对象,可以使用Channels类,它定义了静态方法newChannel() ...
- 洛谷 P1609 最小回文数 题解
这题其实并不难,重点在你对回文数的了解,根本就不需要高精度. 打个比方: 对于一个形如 ABCDEFGH 的整数 有且仅有一个比它大的最小回文数 有且仅有一个比它小的最大回文数 而整数 ABCDDCB ...
- sequelize初使用
官网地址:Sequelize Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects Post ...