jvm:-Xmx1024m
size = 1000000,可以插入成功。
如果再为size增大一个数量级,还是OutOfMemoryError,这时内存已经不好再增加分配了
批量处理本来是为了提高性能,但是太大的数据提交,因为堆的膨胀,堆的寻址会造成性能反而下降。
PreparedStatement加executeBatch方法可以更快,主要想提高预编译sql文件的次数,从而达到提高效率。
如果是为了事务处理,不妨用个变通的办法,建立临时表,导入数据,还是可以用到addBatch,比如每100条一个批次。
然后在另外一张表有个记录,记录是否全部导入成功的标志。
基本思路是利用两段提交理论
------------------------------
public class App {
public static void main(String[] args) throws Exception {
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE", "marshal", "password");
PreparedStatement preparedStatement = connection
.prepareStatement("insert into addbatch_test(id,name) values(?,?)");
int size = 1000000;
for (int i = 0; i < size; i++) {
preparedStatement.setInt(1, i);
preparedStatement.setString(2, "n" + i);
preparedStatement.addBatch();
}
preparedStatement.executeBatch();
preparedStatement.close();
connection.close();
}
}
分享到:
相关推荐
在Java编程中,向数据库插入数据是常见的操作之一,尤其在构建桌面应用或者Web应用时。本示例将重点讲解如何使用Java与Microsoft Access数据库进行交互,实现数据的插入功能。Access是一种轻量级的关系型数据库管理...
这段Java代码通过JDBC实现了向Oracle数据库批量插入数据的功能。关键步骤包括:建立数据库连接、准备SQL语句、批量添加SQL语句到批处理队列、执行批处理以及事务提交。这种方式相比于逐条插入数据,可以显著提升插入...
在Java开发中,当需要向MySQL数据库大量插入数据时,使用JDBC的批量处理功能可以显著提高效率。本文将详细讲解如何使用JDBC批量插入10万条数据,并探讨其背后的原理和优化策略。 批量处理在JDBC中主要通过Statement...
在Java编程中,多线程技术是实现高效并发处理的关键,尤其在大数据量处理和分布式系统中。本主题聚焦于如何利用多线程实现在不同数据库间的数据互导,以及结合连接池技术来优化数据库操作,并实现多表插入功能。我们...
在IT行业中,数据库同步是一个常见的需求,特别是在分布式系统...具体的实现细节会根据实际的数据库结构、数据量以及业务需求有所不同。在实践中,你可能需要根据实际情况调整代码,确保其稳定、高效且符合安全规范。
如果数据量巨大,可以考虑先将数据插入临时表或利用表分区功能,分批处理,然后再合并到目标表。 6. **调整初始化参数**: 优化数据库参数如`DB_FILE_MULTIBLOCK_READ_COUNT`和`LOB_CACHE_SIZE`,可以提升大字段...
我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java等过程化的编程语言。 如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,...
本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java Database Connectivity)用于与MySQL数据库进行交互。 首先,我们需要了解Apache POI库。这是一个...
这种方式现在较少使用,现代的JDBC实现通常推荐使用特定数据库供应商提供的纯Java驱动。 - **建立连接**:使用`DriverManager.getConnection(url, "sa", "")`来获取一个数据库连接。这里的URL指向了一个通过ODBC管理...
下面我们将详细探讨JDBC的使用、SQL数据库的操作以及Java在其中的角色。 1. **JDBC基础** JDBC是Java API,允许Java程序与多种关系型数据库进行通信。它包括一组接口和类,这些接口和类提供了连接数据库、执行SQL...
JDBC(Java Database Connectivity)数据同步是Java编程中一种重要的数据库操作技术,它允许应用程序通过标准接口与各种数据库进行交互。在分布式系统或数据仓库环境中,数据同步是确保多个数据库或数据源间信息一致...
使用JXL,你可以创建新的工作簿,添加工作表,插入数据,格式化单元格,甚至执行公式计算。例如,`Workbook`类代表整个Excel文件,`Sheet`表示工作表,而`Cell`则代表单个单元格。通过这些类的实例,你可以方便地...
本篇文章将详细讲解如何使用JDBC将XML中的数据插入到数据库。 首先,我们需要理解XML的基本结构。XML是一种自描述的标记语言,它通过标签来定义数据元素。例如: ```xml <name>John Doe <age>35 <position>...
考虑到大数据量迁移,可以优化查询性能,比如分批迁移,限制每次查询的数据量,或者使用存储过程等。 9. **测试和验证**: 迁移完成后,务必进行详尽的测试和验证,确保所有数据都被正确无误地迁移,并且新数据库...
### Java中JDBC连接Access...通过上述步骤,可以在Java环境中利用JDBC技术有效地连接和操作Access数据库,包括创建表、插入数据以及查询数据等常见操作。这对于需要在Java应用中集成轻量级数据库功能的场景非常有用。
**JDBC(Java Database Connectivity)**是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。在Java世界里,JDBC是连接各种数据库的标准,无论你是使用...
4. **执行SQL操作**:可以创建表、插入数据、查询等。 ```java String sql = "CREATE TABLE IF NOT EXISTS Users (id INTEGER PRIMARY KEY, name TEXT)"; stmt.executeUpdate(sql); sql = "INSERT INTO Users ...
Blob(Binary Large Object)在数据库中用于存储二进制大对象,如图片、音频或视频文件等...源码中可能包含了类似的实现,通过解压提供的"向数据库插入blob数据实例源码"压缩包,你可以查看并运行完整的Java代码示例。
本主题将深入探讨如何使用Java与数据库交互来处理图片数据。 首先,我们需要了解几种在数据库中存储图片的基本方法: 1. **BLOB类型**:BLOB(Binary Large Object)是数据库中用于存储二进制大数据的类型,如图片...
- 插入数据:逐条执行SQL语句,将数据插入到Oracle表中。 - 处理异常:如果在导入过程中出现错误,如数据格式不正确或数据库约束冲突,应捕获异常,回滚事务,并记录错误信息。 - 提交事务:所有数据成功导入后,...