`
DepthJava
  • 浏览: 21396 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

批处理+PreparedStatement 速度

    博客分类:
  • JAVA
SQL 
阅读更多

使用批处理功能涉及到两个方法:

addBatch(String)方法
executeBatch方法
addBatch方法可以接受一段标准的SQL(如果你使用一个Statement)作为参数,也可以什么参数都不带(如果你使用一个PreparedStatement)。
executeBatch方法接着执行SQL语句,返回一个int型数组。这个数组包括每条语句影响到的行数。如果在一个批处理中使用是一个SELECT或者其它只返回结果的语句,那么将会产生一个SQLException异常

 

速度体验:

 1.使用:PrepareStatement 耗时16s

 

long t1=System.currentTimeMillis();
  String sql="insert into t1 values(?)";
   pre=conn.prepareStatement(sql);
  for(int i=0;i<100000;i++){
   pre.setObject(1, i);
   pre.executeUpdate();
  }  
  conn.commit();
  pre.close();
  conn.close(); 
  long t2=System.currentTimeMillis(); 
  System.out.println((t2-t1)/1000+"s");

 

 2.使用批处理 231 ms

 

  long t1=System.currentTimeMillis();  
  String sql = "insert into t1 values(?)";
  pre = conn.prepareStatement(sql);
  for(int i=1;i<=100000;i++){
     pre.setObject(1, i);
     pre.addBatch();   
    }
    pre.clearBatch();
    pre.executeBatch();  
    long t2=System.currentTimeMillis(); 
    System.out.println((t2-t1)+"s");

 

 

一般使用PrepareStatement+批处理 来处理大量数据!

分享到:
评论

相关推荐

    批处理导入SQL文件

    批处理通过合并多个SQL命令为一个单一的处理单元,可以显著提高数据处理速度,减少网络传输的开销,并优化数据库服务器的资源利用率。 在Java编程中,我们可以使用JDBC(Java Database Connectivity)API来实现...

    java批处理

    例如,使用PreparedStatement预编译SQL语句,可以避免SQL解析的开销。 8. **监控和日志**:为了追踪批处理的进度和性能,需要记录详细的日志,并提供监控工具,以便在出现问题时能够快速定位和解决。 9. **设计...

    JDBC进行批处理共4页.pdf.zip

    PreparedStatement接口同样支持批处理,提供了一样的方法。 2. **批量SQL**: 批处理通常用于执行相同或相似的SQL语句,如插入、更新或删除记录。这些SQL可以是动态参数化的,通过占位符(如问号?)来传递不同的值。...

    JDBC高级批处理

    批处理可以与参数化查询(PreparedStatement)结合,处理含有占位符的SQL语句。这种方式不仅提高了代码可读性,还避免了SQL注入问题。例如: ```java PreparedStatement pstmt = connection.prepareStatement(...

    JDBC批处理数据

    使用`PreparedStatement`进行批处理时,可以动态设置参数值,这样既避免了SQL注入的问题,也使得代码更加安全和高效。 ### 四、总结 通过上述示例可以看出,使用JDBC批处理能够显著提高数据处理的速度和效率,特别...

    【IT十八掌徐培成】Java基础第23天-02.sql注入-preparedstatement-批量插入.zip

    这种方式减少了与数据库的交互次数,从而提高了整体的执行速度。 批量插入的使用步骤大致如下: 1. 创建PreparedStatement对象,并设置好SQL模板(通常为INSERT语句)。 2. 使用setXXX()方法设置参数,每组数据对应...

    5、批量插入海量数据之Java插入MySql(csdn)————程序.pdf

    然而,对于更复杂的SQL(如带有参数的查询),应使用PreparedStatement,它能够预编译SQL语句,提高执行速度并防止SQL注入: ```java Connection conn = DriverManager.getConnection(url, username, password); ...

    JDBC上课代码.zip

    以上就是关于JDBC的一些基础知识,包括其概念、驱动类型、操作步骤、事务管理、批处理、PreparedStatement的使用以及优化技巧。通过学习和熟练掌握这些内容,可以有效地进行Java应用程序与数据库的交互。

    the practice for java

    - 批处理:PreparedStatement的addBatch()和executeBatch()可以批量执行SQL,提高效率。 - 数据源:使用DataSource接口,通过连接池管理数据库连接,提高性能和可维护性。 - CallableStatement:处理存储过程和...

    java-jdbc-连接池大礼包

    4.批处理:PreparedStatement支持批处理,可以一次性提交多条SQL语句,减少网络传输,提高效率。 二、连接池原理与实现 1. 连接池概念:连接池预先创建并维护一定数量的数据库连接,应用程序需要时可以从池中获取,...

    JDBC2

    总结来说,JDBC2是Java与数据库交互的一个强大工具,它通过批处理、PreparedStatement、滚动结果集、存储过程、连接池、分布式事务和详细的异常处理等特性,极大地提升了开发效率和应用性能。对于任何Java数据库应用...

    使用 JDBC 的高级数据库操作

    3. 提交批处理后记得清空批处理队列:`PreparedStatement.clearBatch()` 七、连接池管理 为了优化性能,通常会使用连接池(如C3P0、HikariCP、DBCP等),它们负责管理和复用数据库连接,减少频繁创建和销毁连接的...

    JDBC使用MySQL处理大数据+事务控制管理.txt

    2. **PreparedStatement位置**:为了确保批处理能够正确执行,`PreparedStatement`对象必须在循环体外部创建并复用,避免在每次循环中重新创建新的`PreparedStatement`对象,这会导致批处理失效。 #### 二、事务...

    java操作Oracle.pdf

    Oracle 提供的 Statement 和 CallableStatement 并不真正地支持批处理,只有 PreparedStatement 对象支持批处理。使用 PreparedStatement 对象可以减少数据库的负载,提高系统的性能。 使用 Thin 驱动程序、关闭...

    JDBC之PreparedStatement类中预编译的综合应用解析

    3. **批处理支持**:PreparedStatement支持批处理,可以一次提交多个SQL语句,进一步提高执行效率。 4. **代码可读性和可维护性**:使用PreparedStatement,代码更加简洁,易于阅读和理解。通过设置参数,可以将SQL...

    jdbc连接数据库的方式2

    我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...

    Java基础入门自学课件 第15章 JDBC数据库访问(共12页).ppt

    - 使用批处理:PreparedStatement的addBatch()和executeBatch()方法可以批量执行SQL,提高性能。 - 使用PreparedStatement代替Statement,减少SQL解析时间。 - 开启数据库连接池:通过连接池管理数据库连接,避免...

    数据库批量执行,加快运行速度

    在IT领域,尤其是在数据库操作与优化方面,“数据库批量执行,加快运行速度”是一个核心主题,旨在提高数据处理效率,减少系统响应时间。本文将深入探讨这一主题,解析其背后的原理,以及如何通过批量处理来提升...

    java批量插入Oracle数据方法

    在IT领域,特别是...通过合理设计代码结构,利用`PreparedStatement`的批处理功能,可以显著提升数据插入的速度和系统的整体性能。在实践中,还需注意细节如事务管理和异常处理,以确保数据完整性和系统的健壮性。

    java操作Oracle.docx

    这可能会使你认为,使用 PreparedStatement 对象比使用 Statement 对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的 SQL 操作中,除非成批地处理 SQL 命令,我们应当...

Global site tag (gtag.js) - Google Analytics