executeBatch() 事务 批量执行sql
Connection connection = OracleDB.getConn(ip, user, password);
if (connection == null) {
return;
}
Statement statement = null;
File file = new File("D:\\test.sql");
List<String> sqlList = loadSql(file);
try {
connection.setAutoCommit(false);
statement = connection.createStatement();
for (String sql : sqlList) {
System.out.println("sql : " + sql);
statement.addBatch(sql);
}
int[] rows = statement.executeBatch();
System.out.println("Row count:" + Arrays.toString(rows));
} catch (Exception ex) {
connection.rollback();
connection.setAutoCommit(true);
System.err.print(ex.getMessage());
} finally {
OracleDB.closeAll(connection, statement, null);
}
create table TEST_DELETE
(
ADDRESS VARCHAR2(50) not null,
NAME VARCHAR2(50) not null,
SCORE NUMBER not null
)
;
alter table TEST_DELETE
add constraint TEST_PK primary key (ADDRESS, SCORE);
insert into TEST_DELETE (ADDRESS, NAME, SCORE)
values ('Los Angeles', 'kobe', 100);
insert into TEST_DELETE (ADDRESS, NAME, SCORE)
values ('Los Angeles', 'Atai', 23);
insert into TEST_DELETE (ADDRESS, NAME, SCORE)
values ('Italy', 'kobe', 23);
insert into TEST_DELETE (ADDRESS, NAME, SCORE)
values ('Los Angeles', 'Plou', 95);
insert into TEST_DELETE (ADDRESS, NAME, SCORE)
values ('Espana', 'Plou', 95);
executeBatch() 批量执行sql,假如insert 出现异常,为什么create 不回滚事务
Class.forName("oracle.jdbc.driver.OracleDriver");
return DriverManager.getConnection(url,user,password);
...全文
相关推荐
java实现jdbc批量插入数据
主要为大家详细介绍了java实现jdbc批量插入数据,三种JDBC批量插入编程方法进行比较,感兴趣的朋友可以参考一下
java批量执行SQL
java批量执行SQL java批量执行SQL.txt
【IT十八掌徐培成】Java基础第23天-03.ppst-addBatch-executeBatch - 副本.zip
【IT十八掌徐培成】Java基础第23天-03.ppst-addBatch-executeBatch - 副本.zip
实例讲解Java批量插入、更新数据
片文章介绍了一个Java批量添加数据,多个字段同时添加多条数据具体实例,面向的是Oracle数据库,需要的朋友可以参考下
批量处理JDBC语句提高处理速度
有时候JDBC运行得不够快,这使得有些程序员使用数据库相关的存储过程。作为一个替代方案,可以试试使用Statement 的批量处理特性看看能否同时执行所有的SQL以提高速度。 存储过程的最简单的形式就是包含一系列SQL语句的过程,将这些语句放在一起便于在同一个地方管理也可以提高速度。Statement 类可以包含一系列SQL语句,因此允许在同一个数据库事务执行所有的那些语句而不是执行对数据库的一系列调用。 使用批量处理功能涉及下面的两个方法: · addBatch(String) 方法 · executeBatch方法 如果你正在使用Statement 那么addBatch 方法可以接受一个通


