`

Java JDBC executeBatch 批量操作

    博客分类:
  • Java
阅读更多
对JDBC 的 CRUD操作,我相信对于每个开发人员来讲,是十分熟悉的,尤其是在小型公司的开发人员来讲,大部分的工作也就是这些了。但是对于一个大型系统而言,简单的CRUD是无法存活下来的,因为它的数据量极大,不是简单的几千条,几万条,有时基本在几十万条,甚至几百万条数据量。

之前我们的业务也没有太多,简单的生成订单就是普通的insert操作,有一次发现,操作一个2w条的订单数量,前后花费的时间要15分钟,这个让我有点失望。2w的数据量真的不太大,为什么这么慢呢?当然系统中还有其它的操作存在,不至于这么点的数据量让mysql撑不住了。

原理其实也很简单,每insert一条记录,需要记录下log等一系列的日志操作,这些都是要消费时间的。如果批量提交的话,则会只发送一次的请求。这就是批量提交与普通的提交的差别了。

但是要使用好批量提交操作,有几点还是要注意的。

1. 批量提交的次数,不是几十万条数量一股脑儿的提交上去了,一般是分段提交,每一段提交个1000条数据量,同一段的生成一个UUID记录;

2. 使用批量提交可以直接写事务,
  
    connection.setAutoCommit(false);
    
    psmt.addBatch();
    psmt.executeBatch();

    connection.commit();
   

   这样写,没有问题,事务里面默认会把所有batch里的操作当成一个整体去提交。

3. 如果你没有在事务中写,很可惜,批量的操作会当成普通的操作了,此时你需要在连接的
   时候去加一个参数:
  
rewriteBatchedStatements=true


以上就是记录JDBC 批量操作的方法和注意事项。
分享到:
评论

相关推荐

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

    ### JDBC批量操作详解 #### 一、JDBC批量插入 JDBC(Java Database Connectivity)是Java平台中用来标准地连接数据库的技术。通过JDBC,Java应用程序可以与多种类型的数据库进行交互,实现数据的读取、写入等功能...

    jdbc-批量插入数据

    首先,我们需要了解JDBC的批量操作接口。`java.sql.Statement`和`java.sql.PreparedStatement`接口都提供了批量处理的方法。批量处理主要通过`addBatch()`方法添加SQL语句到批处理队列,然后通过`executeBatch()`...

    JDBC的批量处理语句

    在 JDBC 中,批量处理语句包括两个方法:addBatch(String) 和 executeBatch()。addBatch(String) 方法用于添加需要批量处理的 SQL 语句或参数,而 executeBatch() 方法用于执行批量处理语句。 使用 JDBC 批量处理...

    jdbc批量插入大字段

    如果在批量操作中发生错误,整个事务可以回滚,避免了部分插入的数据不一致问题。 - **使用Oracle特定的Blob处理**:Oracle提供了`oracle.sql.BLOB`类,它具有更高级别的功能,如直接从文件系统读写Blob,可以减少...

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

    首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库。在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将...

    java实现jdbc批量插入数据

    本篇文章将详细介绍如何使用Java实现JDBC批量插入数据,并比较三种常见的JDBC批量插入编程方法。 **方法一:使用PreparedStatement加批量的方法** PreparedStatement是Statement的子接口,允许预编译SQL语句,这...

    Java实现批量向mysql写入数据的方法

    本文主要介绍了Java实现批量向mysql写入数据的方法,该方法涉及Java基于JDBC连接mysql数据库及写入数据的相关操作技巧。JDBC(Java Database Connectivity)是Java语言中用于连接数据库的API,提供了多种数据库的...

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

    在`JDBCBatchInsert.java`中,可以看到如何创建PreparedStatement对象,设置占位符,然后多次调用`addBatch()`添加不同的数据,最后调用`executeBatch()`执行批量插入。 2. **使用Statement的batchUpdate()** ...

    jdbc批量 (绝对经典)

    ### JDBC批量操作详解:效率与性能的提升策略 在数据库操作中,批量处理是一种常见的优化技术,用于提高数据处理的效率和性能。JDBC(Java Database Connectivity)作为Java应用程序与数据库交互的标准API,提供了...

    Java用JDBC实现对Oracle数据库操作

    6. **批量操作**:当有大量数据要插入或更新时,使用预编译的PreparedStatement的`addBatch()`和`executeBatch()`方法可以提高效率。 7. **错误处理**:处理SQLException,这可能由于网络问题、数据库无响应或无效...

    【IT十八掌徐培成】Java基础第23天-03.ppst-addBatch-executeBatch.zip

    【IT十八掌徐培成】Java基础第23天的课程主要聚焦在JDBC操作数据库时的批量处理技术,特别是`addBatch`和`executeBatch`这两个关键方法。在Java中,当我们需要对数据库进行大量数据的插入、更新或删除操作时,传统的...

    java操作Oracle批量入库

    在Java编程中,批量操作数据库可以显著提高程序的性能,特别是在处理大量数据时。Oracle作为一款广泛应用的关系型数据库管理系统,其与Java的结合是企业级开发中的常见实践。本篇文章将详细探讨如何使用Java来实现...

    javaJDBC.rar_jdbc

    在这个名为“javaJDBC.rar_jdbc”的压缩包中,我们有两个文件:www.pudn.com.txt和example。虽然没有提供具体的文件内容,但我们可以根据文件名和描述来推测其可能包含的知识点。 1. **Java JDBC API基础**: - **...

    JDBC_MYSQL.rar_JDBC-MYSQL_java jdbc mysql_java sql 简单

    6. **批量操作和性能优化**: - JDBC支持批量处理SQL语句,可以提高性能,例如使用`addBatch()`和`executeBatch()`方法。 - 使用PreparedStatement可以防止SQL注入攻击,并提高查询效率。 7. **事务管理**: - ...

    java JDBC编程源码

    10. **最佳实践**:源码可能还会包含一些最佳实践,比如使用`PreparedStatement`而非`Statement`,及时关闭数据库连接,以及在可能的情况下使用批量操作等。 通过学习和理解这些源码,开发者可以更好地理解和掌握...

    JDBC的批量处理数据

    JDBC API提供了`Statement`和`PreparedStatement`接口的`clearBatch()`方法,用于清除当前批量操作中的所有语句,以及`Connection`接口的`createStatement()`和`prepareStatement()`方法,用于创建`Statement`和`...

    JDBC.rar_java jdbc mysql

    1. **批量更新**:`Statement`对象提供了`addBatch()`方法添加SQL语句到批处理队列,然后调用`executeBatch()`一次性执行所有语句。 2. **批处理优化**:对于大量重复的操作,批处理可以显著提升性能,减少网络通信...

    java批量执行SQL

    4. **事务管理**:对于批量操作,建议在事务中进行,以保证数据的一致性和完整性。 #### 五、扩展阅读 - **JDBC规范文档**:了解JDBC接口和方法的详细说明。 - **数据库官方文档**:查看所使用数据库对批量执行的...

Global site tag (gtag.js) - Google Analytics