`

jdbc中的batch操作总结

阅读更多

在用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讲义例子"将涵盖Oracle JDBC驱动的安装、配置、连接建立、SQL执行、事务管理、批处理、源码解析以及相关工具的使用等方面,为开发者提供全面的Oracle数据库操作指南。通过深入学习和实践,...

    sqljdbc.zip

    总结来说,"sqljdbc.zip"提供的JDBC驱动程序使得Java开发者能够方便地与SQL Server数据库进行交互,无论是进行简单的数据查询还是复杂的业务操作,都有相应的API支持。正确理解和使用这些驱动,能够极大地提升Java...

    SqlJDBC3.0和4.0

    随着Java 6(Java SE 6.0)的发布,JDBC4.0带来了更多改进,进一步提升了开发效率和数据库操作的灵活性。这些新特性包括: 1. **自动发现服务(Automatic Service Discovery)**:允许驱动程序自动发现数据库服务器...

    高级JDBC教案

    总结起来,高级JDBC教程涵盖了数据库操作的核心技术,包括SQL操作、预编译语句、事务处理、存储过程、元数据操作、可滚动和可更新的结果集、批处理更新以及大对象处理。熟练掌握这些知识,将有助于开发者更高效、...

    JDBC入门中文文档

    **JDBC(Java Database Connectivity)入门中文文档** JDBC是Java语言中用于访问数据库的标准应用程序接口...通过阅读“JDBC入门中文文档”,你可以深入理解这些知识,从而在实际项目中高效地使用JDBC进行数据库操作。

    jdbc批量 (绝对经典)

    本文将深入探讨JDBC中的三种批量处理方法,包括普通插入、批处理以及存储过程的批量执行,通过具体代码示例来展示如何实现这些批量操作,以及它们对系统性能的影响。 #### 普通插入操作 在JDBC中,最基本的批量...

    JDBC2

    在JDBC2中,最重要的更新之一是引入了**批处理(Batch Processing)**。批处理允许开发者将多条SQL语句组合在一起,一次性提交给数据库执行,从而提高了效率,减少了网络传输开销。此外,它还支持预编译的**...

    JDBC SP3

    Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准Java API,它由Java SE中的java.sql和javax.sql包提供。SP3(Service Pack 3)通常指的是某个软件版本的第三次重大更新,此处的"JDBC SP3"可能...

    spring-batch同步数据库mysql源码

    针对MySQL数据库,Spring-Batch提供了一套完整的JDBC支持,允许开发者配置SQL查询来读取和更新数据。在描述中提到,项目已经移除了两个特定数据库的驱动库,这意味着默认配置是针对MySQL的。如果你需要支持Oracle或...

    jdbc jar包

    **正文** ...总结来说,JDBC jar包是Java开发中连接数据库不可或缺的工具,它提供了标准接口,使得开发者可以轻松地与各种数据库进行交互。理解并熟练掌握JDBC的使用,对提升Java数据库开发能力至关重要。

    Spring JDBC 增删改查

    总结来说,Spring JDBC提供了强大且灵活的数据库访问工具,简化了JDBC的使用,使得开发者能够专注于业务逻辑,而不是底层的数据库操作细节。结合良好的事务管理和异常处理机制,Spring JDBC成为了Java开发中的重要...

    08、综合案例-使用JDBC完成商城项目的CRUD

    在本综合案例中,我们将深入探讨如何利用Java Database Connectivity(JDBC)技术来实现一个商城项目的数据存取操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete),通常简称为CRUD操作。JDBC是...

    mysql-connector-java Linux下MySQL的JDBC驱动Jar包

    总结,"mysql-connector-java"是Java与MySQL数据库之间的重要桥梁,它为开发者提供了方便的接口,以便在Linux环境中进行数据库操作。了解并熟练掌握其安装、配置和使用,是开发Java数据库应用的基础。随着技术的发展...

    JDBC汇总 包含sql oracle的jdbc代码

    在标题和描述中提到的“JDBC汇总”指的是对不同数据库(如SQL Server、Oracle、MySQL和Sybase)的JDBC驱动程序及其连接代码的总结。以下是这些数据库的JDBC连接代码示例: 1. **Microsoft SQL Server**: - 对于...

    JDBC连接MySQL数据库的方法浅析.pdf

    总结来说,JDBC是Java与MySQL数据库交互的重要桥梁,通过规范化的API,简化了数据库编程,同时提供了良好的性能和平台兼容性。理解和熟练使用JDBC是每个Java开发者必备的技能之一。在实际项目中,开发者应根据需求...

    spring-batch+quartz处理mysql数据示例

    总结来说,本示例通过Spring Batch实现了数据的批量读取、处理和写入,而Quartz则负责定时调度这些操作。这样的组合在大数据处理、ETL(提取、转换、加载)流程以及需要定期更新数据库的应用场景中非常常见。学习和...

    j2ee 网络编程 JDBC技术

    总结来说,JDBC是J2EE网络编程中访问数据库的关键技术,提供了高效、灵活且跨平台的数据库访问能力。通过理解并熟练运用JDBC,开发者可以构建出高效、稳定的企业级应用系统。在实际开发中,结合连接池和JNDI等高级...

    Java语言SQL接口 JDBC编程技术

    总结起来,Java语言SQL接口JDBC编程技术是Java程序员必备的技能之一,它提供了连接、操作和管理数据库的标准接口,使得Java应用能够高效、安全地与各种数据库进行交互。学习并熟练掌握JDBC,对于开发基于Java的...

Global site tag (gtag.js) - Google Analytics