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的 ...
随机推荐
- NodeJS 笔记 path模块
path 模块,本模块包含一系列处理和转换文件路径的工具集. path.normalize(path) normalize函数将不符合规范的路径经过格式化转换为标准路径,解析路径中的.与..外,还 ...
- amipy exampes
jupyter notebook of backtest examples using amipy amipy examples: http://nbviewer.jupyter.org/github ...
- JS面向对象编程之对象(简化版)
上次网上看了一篇这个文章,然后乱七八糟晕头转向把我晕的够呛.看了半天没找到错的地方但是浏览器Hello world就是没有定义...我也是醉了,最后发现我认为是废话的话一句话竟然有用!!!所以我还是简 ...
- [整理]ASP.NET MVC 5
1.入门 1.1官方资料 http://www.asp.net/mvc/overview/getting-started/introduction/getting-started 疑问: startu ...
- CMSZU站群管理系统 升级到 v1.8 [源码下载]
CmsZu 简介 CMSZU即CMS族,是个网站内容管理平台,基于PHP+MYSQL技术创建,源码开放. CmsZu 更新说明 V1.8 修改了些bug 完善数据库管理 -> 数据库表管理的 字 ...
- 20155237 2016-2017-2 《Java程序设计》第7周学习总结
20155237 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 认识Lambda语法 Lambda 教材的引入循序渐近.深入浅出 Lambda去重复,回忆D ...
- C. Ayoub and Lost Array(DP)
(又是被队友带着上分的一场--) 题目链接:http://codeforces.com/contest/1105/problem/C 题目大意:给你n,l,r.每一个数都是在l,r范围之内,然后问你这 ...
- [WC2008]游览计划 「斯坦那树模板」
斯坦那树 百度释义 斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种.最小生成树是在给定的点集和边中寻求最短网络使所有点连通.而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开 ...
- php的递归函数示例
递归函数太难理解了,写了一个示例放在这里方便没事的时候看一下. <?php /** *php递归函数示例 *(从1到100的累加和计算) * */ function summation($num ...
- 一步步实现windows版ijkplayer系列文章之一——Windows10平台编译ffmpeg 4.0.2,生成ffplay
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...