关于使用JDBC的批量操作插入ORACLE数据库数据丢失的问题
在使用jdbc的批量操作批量插入oracle数据表中的时候, 只能插入一条数据,请问下是什么原因? 代码如下:
其中dn_test_1 有三条数据。
但是如果把addbatch的顺序调整下, 第三个放到第一个,第一个放到第三个就又能插入3条数据了, 请问下这是什么原因。
ds = getDataSource();
connection = ds.getConnection();
connection.setAutoCommit(false);
StringBuffer sqlBf = new StringBuffer();
sqlBf.append(" insert into dn_test_2 ");
sqlBf.append(" (colunm_a, colunm_b) ");
sqlBf.append(" select oo.colunm_a, ? ");
sqlBf.append(" from (select co.colunm_a, rownum rn ");
sqlBf.append(" from (select it.colunm_a from dn_test_1 it order by it.colunm_a) co ");
sqlBf.append(" where rownum <= ?) oo ");
sqlBf.append(" where rn >= ? ");
PreparedStatement sqlStmt = connection.prepareStatement(sqlBf.toString());
sqlStmt.setInt(1, 1);
sqlStmt.setInt(2, 1);
sqlStmt.setInt(3, 1);
sqlStmt.addBatch();
sqlStmt.setInt(1, 2);
sqlStmt.setInt(2, 2);
sqlStmt.setInt(3, 2);
sqlStmt.addBatch();
sqlStmt.setInt(1, 3);
sqlStmt.setInt(2, 3);
sqlStmt.setInt(3, 3);
sqlStmt.addBatch();
sqlStmt.executeBatch();
connection.commit();其中dn_test_1 有三条数据。
但是如果把addbatch的顺序调整下, 第三个放到第一个,第一个放到第三个就又能插入3条数据了, 请问下这是什么原因。
...全文
相关推荐
用Java实现SQL_Server到Oracle数据迁移
- **数据加载**:将转换后的数据以批量插入的方式写入Oracle。可以使用PreparedStatement的`addBatch()`和`executeBatch()`方法进行批量操作,提高效率。
jdbc-批量插入数据
本文将深入探讨如何使用JDBC进行批量插入数据,这在处理大量数据时能显著提高性能。批量插入数据是数据库操作中常见的一种优化策略,特别是在数据分析、数据迁移或大数据处理等场景。
Java使用Mybatis将数据批量插入到Oracle
该项目实现了使用MyBatis框架将大量数据批量插入Oracle数据库的功能。包含 ACCOUNT_INFO 表结构定义、序列主键生成及动态SQL批量插入逻辑,通过mybatis-configurat
java代码oracle数据库批量插入
#### 总结这段Java代码通过JDBC实现了向Oracle数据库批量插入数据的功能。关键步骤包括:建立数据库连接、准备SQL语句、批量添加SQL语句到批处理队列、执行批处理以及事务提交。
Spring boot连接oracle数据库JDBC配置步骤
Spring Boot 连接 Oracle 数据库 JDBC 配置步骤在本文中,我们将详细介绍如何使用 Spring Boot 连接 Oracle 数据库,配置 JDBC 驱动程序,并实现数据库的基本操作


