在用jdbc对oracle数据库执行批量提交数据操作时,我们会采用batch的方式进行批量提交
batch ,如果需要批量更新100条,如果在第31条处出现了异常,那么之后的数据就不会更新了,如果加上事务管理,那么只要有出错了,所有的batch执行的都会回滚
private synchronized void execData() throws Exception{
if(data.size()==0){
return ;
}
PreparedStatement pstmt = null;
try {
conn.setAutoCommit(false);
Enumeration en=data.keys();
while (en.hasMoreElements()) {
Integer i=(Integer)en.nextElement();
pstmt = conn.prepareStatement((String)data.get(i));
pstmt.addBatch();
dv.add(i);
}
pstmt.executeBatch();
conn.commit();
} catch (BatchUpdateException e) {//batch异常时需要单条处理,并且需要回滚之前的操作
e.printStackTrace(System.out);
try {
conn.rollback();
} catch (Exception exception) {
// TODO: handle exception
exception.printStackTrace();
}
singleExec();
return;
}catch (Exception e) {//其他异常
e.printStackTrace(System.out);
dv.clear();
return;
}finally {//关闭资源
try {
pstmt.close();
} catch (Exception e) {
e.printStackTrace(System.out);
}
try {
conn.close();
} catch (Exception e) {
// TODO: handle exception
throw new Exception("操作出现异常") ;
}
}
try{
Enumeration en=dv.elements();
while (en.hasMoreElements()) {
Integer i=(Integer)en.nextElement();
data.remove(i);
}
dv.clear();
}catch (Exception e) {
e.printStackTrace(System.out);
}
}
分享到:
相关推荐
总结起来,"Oracle JDBC讲义例子"将涵盖Oracle JDBC驱动的安装、配置、连接建立、SQL执行、事务管理、批处理、源码解析以及相关工具的使用等方面,为开发者提供全面的Oracle数据库操作指南。通过深入学习和实践,...
总结来说,"sqljdbc.zip"提供的JDBC驱动程序使得Java开发者能够方便地与SQL Server数据库进行交互,无论是进行简单的数据查询还是复杂的业务操作,都有相应的API支持。正确理解和使用这些驱动,能够极大地提升Java...
随着Java 6(Java SE 6.0)的发布,JDBC4.0带来了更多改进,进一步提升了开发效率和数据库操作的灵活性。这些新特性包括: 1. **自动发现服务(Automatic Service Discovery)**:允许驱动程序自动发现数据库服务器...
总结起来,高级JDBC教程涵盖了数据库操作的核心技术,包括SQL操作、预编译语句、事务处理、存储过程、元数据操作、可滚动和可更新的结果集、批处理更新以及大对象处理。熟练掌握这些知识,将有助于开发者更高效、...
**JDBC(Java Database Connectivity)入门中文文档** JDBC是Java语言中用于访问数据库的标准应用程序接口...通过阅读“JDBC入门中文文档”,你可以深入理解这些知识,从而在实际项目中高效地使用JDBC进行数据库操作。
本文将深入探讨JDBC中的三种批量处理方法,包括普通插入、批处理以及存储过程的批量执行,通过具体代码示例来展示如何实现这些批量操作,以及它们对系统性能的影响。 #### 普通插入操作 在JDBC中,最基本的批量...
在JDBC2中,最重要的更新之一是引入了**批处理(Batch Processing)**。批处理允许开发者将多条SQL语句组合在一起,一次性提交给数据库执行,从而提高了效率,减少了网络传输开销。此外,它还支持预编译的**...
Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准Java API,它由Java SE中的java.sql和javax.sql包提供。SP3(Service Pack 3)通常指的是某个软件版本的第三次重大更新,此处的"JDBC SP3"可能...
针对MySQL数据库,Spring-Batch提供了一套完整的JDBC支持,允许开发者配置SQL查询来读取和更新数据。在描述中提到,项目已经移除了两个特定数据库的驱动库,这意味着默认配置是针对MySQL的。如果你需要支持Oracle或...
**正文** ...总结来说,JDBC jar包是Java开发中连接数据库不可或缺的工具,它提供了标准接口,使得开发者可以轻松地与各种数据库进行交互。理解并熟练掌握JDBC的使用,对提升Java数据库开发能力至关重要。
总结来说,Spring JDBC提供了强大且灵活的数据库访问工具,简化了JDBC的使用,使得开发者能够专注于业务逻辑,而不是底层的数据库操作细节。结合良好的事务管理和异常处理机制,Spring JDBC成为了Java开发中的重要...
在本综合案例中,我们将深入探讨如何利用Java Database Connectivity(JDBC)技术来实现一个商城项目的数据存取操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete),通常简称为CRUD操作。JDBC是...
总结,"mysql-connector-java"是Java与MySQL数据库之间的重要桥梁,它为开发者提供了方便的接口,以便在Linux环境中进行数据库操作。了解并熟练掌握其安装、配置和使用,是开发Java数据库应用的基础。随着技术的发展...
在标题和描述中提到的“JDBC汇总”指的是对不同数据库(如SQL Server、Oracle、MySQL和Sybase)的JDBC驱动程序及其连接代码的总结。以下是这些数据库的JDBC连接代码示例: 1. **Microsoft SQL Server**: - 对于...
总结来说,JDBC是Java与MySQL数据库交互的重要桥梁,通过规范化的API,简化了数据库编程,同时提供了良好的性能和平台兼容性。理解和熟练使用JDBC是每个Java开发者必备的技能之一。在实际项目中,开发者应根据需求...
总结来说,本示例通过Spring Batch实现了数据的批量读取、处理和写入,而Quartz则负责定时调度这些操作。这样的组合在大数据处理、ETL(提取、转换、加载)流程以及需要定期更新数据库的应用场景中非常常见。学习和...
总结来说,JDBC是J2EE网络编程中访问数据库的关键技术,提供了高效、灵活且跨平台的数据库访问能力。通过理解并熟练运用JDBC,开发者可以构建出高效、稳定的企业级应用系统。在实际开发中,结合连接池和JNDI等高级...
总结起来,Java语言SQL接口JDBC编程技术是Java程序员必备的技能之一,它提供了连接、操作和管理数据库的标准接口,使得Java应用能够高效、安全地与各种数据库进行交互。学习并熟练掌握JDBC,对于开发基于Java的...