`

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);
		}
	}
 
分享到:
评论

相关推荐

    Hibernate+中文文档

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    hibernate3.2中文文档(chm格式)

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    Hibernate中文详细学习文档

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    Hibernate 中文 html 帮助文档

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3...

    HibernateAPI中文版.chm

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    hibernate3.04中文文档.chm

    2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    Hibernate参考文档

    1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3...

    hibernate 体系结构与配置 参考文档(html)

    总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory ...

    hibernate 框架详解

    总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 ...

    Hibernate教程

    2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 ...

Global site tag (gtag.js) - Google Analytics