`
liuzm
  • 浏览: 101010 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

批量处理JDBC语句提高处理速度

    博客分类:
  • JAVA
阅读更多
批量处理JDBC语句提高处理速度
有时候JDBC运行得不够快,这使得有些程序员使用数据库相关的存储过程。作为一个替代方案,可以试试使用Statement 的批量处理特性看看能否同时执行所有的SQL以提高速度。
存储过程的最简单的形式就是包含一系列SQL语句的过程,将这些语句放在一起便于在同一个地方管理也可以提高速度。Statement 类可以包含一系列SQL语句,因此允许在同一个数据库事务执行所有的那些语句而不是执行对数据库的一系列调用。
使用批量处理功能涉及下面的两个方法:
·    addBatch(String) 方法
·    executeBatch方法

如果你正在使用Statement 那么addBatch 方法可以接受一个通常的SQL语句,或者如果你在使用PreparedStatement ,那么也可以什么都不向它增加。
executeBatch 方法执行那些SQL语句并返回一个int值的数组,这个数组包含每个语句影响的数据的行数。如果将一个Select语句或者其他返回一个ResultSet的SQL语句放入批量处理中就会导致一个SQLException异常。
关于java.sql.Statement 的简单范例可以是:
Statement stmt = conn.createStatement();
stmt.insert("Delete FROM Users");
stmt.insert("Insert INTO Users VALUES('rod', 37, 'circle')");
stmt.insert("Insert INTO Users VALUES('jane', 33, 'triangle')");
stmt.insert("Insert INTO Users VALUES('freddy', 29, 'square')");

int[] counts = stmt.executeBatch();
PreparedStatement 有些不同,它只能处理一部分SQL语法,但是可以有很多参数,因此重写上面的范例的一部分就可以得到下面的结果:
// 注意这里没有Delete语句

PreparedStatement stmt = conn.prepareStatement(
    "Insert INTO Users VALUES(?,?,?)"
    );

User[ ] users = ...;
for(int i=0; i<users.length; i++) {
    stmt.setInt(1, users[i].getName());
    stmt.setInt(2, users[i].getAge());
    stmt.setInt(3, users[i].getShape());
     stmt.addBatch( );
}

int[ ] counts = stmt.executeBatch();
如果你不知道你的语句要运行多少次,那么这是一个很好的处理SQL代码的方法。在不使用批量处理的情况下,如果添加50个用户,那么性能就有影响,如果某个人写了一个脚本添加一万个用户,程序可能变得很糟糕。添加批处理功能就可以帮助提高性能,而且在后面的那种情况下代码的可读性也更好。

本篇文章来源于 :刘志猛博客 原文链接:http://www.liuzm.com/article/mysql/9614c.htm
分享到:
评论

相关推荐

    JDBC的批量处理语句

    "JDBC批量处理语句" JDBC 批量处理语句是指使用 JDBC 连接...使用 JDBC 批量处理语句可以提高应用程序的性能,减少数据库访问次数,并提高执行效率。但是,需要根据实际情况选择合适的方法,避免出现异常或错误。

    JDBC批量插入 更新 删除等操作

    批量操作是指在一次数据库连接中执行多次SQL语句的操作,这种方式能显著提高程序性能,尤其是在处理大量数据时。 **批量插入**主要用于数据导入和日志记录等场景。例如,在日志系统中,通常会将日志信息先写入到...

    JDBC的批量处理数据

    通过合理利用JDBC的批量处理功能,开发者可以优化数据操作的性能,特别是在处理大数据量时,能有效减少数据库的负担,提高系统的整体响应速度。因此,理解和掌握批量处理是每个Java数据库开发者必备的技能之一。

    jdbc批量插入大字段

    因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...

    jdbc-批量插入数据

    本文将深入探讨如何使用JDBC进行批量插入数据,这在处理大量数据时能显著提高性能。 批量插入数据是数据库操作中常见的一种优化策略,特别是在数据分析、数据迁移或大数据处理等场景。传统的单条插入方式可能会导致...

    jdbc批量 (绝对经典)

    JDBC的批量处理机制是提高数据库操作效率的重要手段,尤其是在处理大量数据时。普通插入、批处理和存储过程的批量执行各有特点和适用场景。普通插入适用于小规模数据操作,而批处理和存储过程则更适合于大规模数据...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    java数据批量处理

    在Java编程领域,数据批量处理是一项常见的任务,尤其在大数据、数据库操作以及系统集成等场景中,批量处理能显著提高效率并减少资源消耗。本文将深入探讨Java如何进行数据批量处理,涉及的主要知识点包括批量读取、...

    Jmeter中JDBC request多条SQL语句使用.docx

    本文将重点介绍如何在JMeter中使用JDBC Request来执行多条SQL语句,包括查询与更新操作,并针对不同类型的SQL语句提供最佳实践。 #### 二、JDBC Request概述 JDBC Request是JMeter提供的一个用于执行数据库操作的...

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

    java批量执行SQL

    批量执行SQL的基本思想是通过一次网络往返,发送多条SQL语句到数据库服务器,从而减少网络开销,提高执行效率。在Java中,主要通过`PreparedStatement`的`addBatch()`方法将多条SQL语句添加到批处理中,再调用`...

    SpringJDBC批量处理数据代码示例

    批量处理是提高数据库性能的重要手段,尤其在插入、更新大量数据时,能显著减少数据库交互次数,从而提高效率。下面我们将详细探讨Spring JDBC如何实现批量处理数据。 首先,批量处理数据的基本思想是将多条SQL语句...

    mysql,jdbc详解,与ibatis对比。批量查询,分页处理。

    - **批量查询**: 用于处理大量数据的查询任务。例如,当需要从表中检索数千条记录时,可以使用`IN`子句或循环处理等方式实现。 - **分页处理**: 在处理大量数据时非常有用,尤其是对于Web应用中的数据展示。常用的...

    三种JDBC批量插入编程方法的比较

    在Java的数据库编程中,JDBC(Java Database Connectivity)提供了多种方法来实现数据的批量插入,从而提高数据库操作的效率。本篇文章将深入探讨三种不同的JDBC批量插入编程方法,并进行对比分析,以帮助开发者更好...

    JDBC详解(连接操作数据库、处理大数据、批处理)

    4. **大数据处理**:虽然JDBC本身并不是专门针对大数据场景设计的,但可以利用其批量操作等特性来优化大数据处理流程。 综上所述,JDBC为Java开发者提供了一套强大且灵活的工具集,使他们能够在不同的数据库环境中...

    jdbc2000,jdbc2005

    4. **Statement的批量参数化(PreparedStatement Batch with Parameters)**:批量处理带有参数的SQL语句,提高了批量操作的效率。 5. **并发控制(Concurrency Control)**:提供了读未提交(READ UNCOMMITTED)、...

    ibatis应对批量update

    为了解决这个问题,ibatis(现已更名为MyBatis)提供了一种支持批量更新的机制,能够显著提高数据处理的速度。 #### 批量Update背景与问题 在实际应用中,经常会遇到需要批量更新数据库中的数据的情况,例如:商品...

    C++操作MYSQL库类JDBC

    7. **批处理**:批量执行SQL语句,提高性能。 8. **连接池**:为了提高效率和资源利用率,类库可能实现连接池,管理和复用数据库连接。 通过这样的类库,C++开发者可以编写更简洁、易于维护的代码,同时利用C++的...

    JDBC教程

    批处理可以提高性能,通过批量执行多条SQL语句。可以使用Statement对象的`addBatch()`方法添加SQL语句到批处理队列,然后通过`executeBatch()`执行。 ### 6. JDBC性能优化 - 使用PreparedStatement代替Statement,...

Global site tag (gtag.js) - Google Analytics