`
c_c
  • 浏览: 85877 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

编程控制Oralce事务

阅读更多

在对数据库写编程时,事务控制是首先需要关注的问题。

 

第1点,弄清“自动提交”与“手工提交”方式下,事务提交的时机;

第2点,是确定采用自动事务提交方式,还是手动提交方式。

 

下面是对第1点的测试过程记录:

 

1.采用自动事务提交

	public void insert(){
			try{
				con =JdbcUtil.getConnection();
				for( int i=0; i<5; i++){
					System.out.println("-----"+i);
				stmt =con.createStatement();
				sql ="INSERT INTO TEMP_ZDP2 values('aa',"+i+",'33',null,null)";
				stmt.executeUpdate(sql);
				}		
			}catch( Exception e){
				e.printStackTrace();
			}finally{
				JdbcUtil.close( rs);
				JdbcUtil.close( stmt);
				JdbcUtil.close( con);
			}	
	}

stmt.executeUpdate(sql);处设置断点

执行中发现,在每次执行完stmt.executeUpdate(sql);后,数据库中就插入了记录

 

2.采用手工提交,显式使用commit来提交数据

			try{
				con =JdbcUtil.getConnection();
				con.setAutoCommit( false);
				for( int i=0; i<5; i++){
					System.out.println("-----"+i);
				stmt =con.createStatement();
				sql ="INSERT INTO TEMP_ZDP2 values('bb',"+i+",'33',null,null)";
				stmt.executeUpdate(sql);
				}		
				con.commit();
			}catch( Exception e){
				e.printStackTrace();
			}finally{
				JdbcUtil.close( rs);
				JdbcUtil.close( stmt);
				JdbcUtil.close( con);
			}	

 执行中发现,在每次执行完stmt.executeUpdate(sql);后,数据库中并没有插入记录,直到con.commit();后,库中才有数据生成。

 

3.采用手工提交,不使用commit

 

			try{
				con =JdbcUtil.getConnection();
				con.setAutoCommit( false);
				for( int i=0; i<5; i++){
					System.out.println("-----"+i);
				stmt =con.createStatement();
				sql ="INSERT INTO TEMP_ZDP2 values('bb',"+i+",'33',null,null)";
				stmt.executeUpdate(sql);
				}		
			}catch( Exception e){
				e.printStackTrace();
			}finally{
				JdbcUtil.close( rs);
				JdbcUtil.close( stmt);
				JdbcUtil.close( con);
			}	

  执行中发现,在每次执行完stmt.executeUpdate(sql);后,数据库中并没有插入记录,直到JdbcUtil.close( con);后,库中才有数据生成。

0
2
分享到:
评论

相关推荐

    Oracle SQL高级编程

    3. 事务处理:深入理解如何使用Oracle的事务控制语句,如COMMIT、ROLLBACK以及SAVEPOINT,进行有效的事务管理。 4. 锁机制:了解和使用Oracle的锁定机制来处理并发事务,包括乐观锁定和悲观锁定。 5. 数据库触发器:...

    java编程访问oracle数据库

    Java编程访问Oracle数据库是软件开发中的常见任务,它涉及到Java的JDBC(Java Database Connectivity)技术,Oracle数据库的使用以及数据库连接管理等多个方面。在这个场景中,`testODBC`可能是一个包含Java源代码...

    oracle 在java中的事务处理和异常回滚。

    在Java编程中,Oracle数据库是常用的后端存储系统,而事务处理和异常回滚是确保数据一致性、完整性和可靠性的关键机制。以下是对这个主题的详细讲解。 首先,Oracle JDBC驱动程序是Java与Oracle数据库之间通信的...

    VC数据库编程实例-ORACLE数据库VC数据库编程实例

    在VC++环境中进行数据库编程,Oracle数据库是一个常见且强大的选择。本实例主要关注如何使用VC++与Oracle数据库进行交互,实现数据的存取、查询、更新和删除等操作。Oracle数据库是一个关系型数据库管理系统,提供了...

    spring.net oracle 事务控制

    在本项目中,我们将讨论如何在Spring.NET中结合Oracle数据库实现事务控制,以及利用自定义异常处理来确保数据的一致性和完整性。 首先,让我们了解什么是事务。在数据库操作中,事务是一系列操作的集合,这些操作...

    oracle 事务

    总的来说,Oracle事务和EJB的结合为分布式企业级应用提供了强大的数据管理能力,使得开发者能够构建出高可用、高性能且数据一致的应用系统。理解并掌握事务管理机制,对于优化数据库操作、提升系统性能至关重要。

    Oracle编程入门经典

    你将学习如何使用DDL(Data Definition Language)创建表、索引、视图等,DML(Data Manipulation Language)用于插入、更新和删除数据,以及DCL(Data Control Language)用于权限管理和事务控制。 在SQL查询方面...

    ATM.zip_ATM机oracle_Atm机编程_oracle_oracle ATM_oracle atm机

    Oracle提供了强大的事务管理机制,包括BEGIN TRANSACTION、COMMIT和ROLLBACK语句,用于控制事务的开始、提交和回滚,确保数据的一致性。 4. **并发控制**:由于多用户可能同时访问数据库,Oracle通过锁定机制和乐观...

    MySQL或Oracle通过ODBC与C#建立连接和进行事务处理

    ### MySQL或Oracle通过ODBC与C#建立连接和进行事务处理 #### 一、概述 在现代企业级应用开发中,数据库的选择对于整个系统的稳定性和性能有着至关重要的影响。随着多语言开发的需求日益增长,如何让不同的编程语言...

    Oracle专家高级编程-超清文字版

    4. **并发控制**:深入理解Oracle的事务管理,包括锁机制、多版本并发控制(MVCC)和行级锁定,以及死锁的预防和解决。 5. **备份与恢复**:介绍RMAN( Recovery Manager)的使用,包括全量备份、增量备份、归档...

    最新Oracle编程

    事务管理和并发控制是Oracle编程的关键。Oracle使用多版本并发控制(MVCC)来实现事务的隔离级别,如读已提交、可重复读等。理解这些概念有助于编写出正确处理并发问题的代码。 安全性是Oracle数据库的另一大关注点...

    在.NET中如何使用Oracle数据库事务

    在.NET中,OracleTransaction对象代表了数据库事务,它允许开发者在Oracle数据库中控制事务的开始、提交和回滚。 要使用OracleTransaction,你需要安装以下软件: 1. 支持的操作系统:Windows NT 4.0、Windows 2000...

    Oracle专家高级编程.pdf

    8. **并发控制与事务管理**:Oracle的锁机制和多版本并发控制(MVCC)是处理并发操作的关键。理解这些概念可以帮助避免死锁和其他并发问题。 9. **分布式数据库系统**:Oracle支持分布式数据库,通过全局唯一标识符...

    oracle11g 编程实战

    9. **事务和并发控制**:理解事务的概念,掌握COMMIT、ROLLBACK和SAVEPOINT操作,以及并发控制机制,如锁定和多版本并发控制(MVCC)。 10. **数据库链接**:学习如何创建和使用数据库链接,实现不同数据库之间的...

    oracle sql 高级编程

    Oracle SQL高级编程是针对数据库开发和管理的专业领域,旨在帮助高级编程人员深入理解和掌握SQL在Oracle数据库中的应用。Oracle数据库是世界上最广泛使用的数据库系统之一,它提供了强大的功能和高效的性能,使得SQL...

    Thomas Kyte的《Expert One on One: Oracle》,这本书的中译本,被称为《Oracle专家高级编程

    7. **并发控制与事务处理**:分析Oracle的多版本并发控制(MVCC)机制,探讨锁定、死锁、事务的提交和回滚策略,以及并发性能的影响因素。 8. **安全性**:讨论Oracle的安全管理,包括用户权限、角色、审计、网络...

    Oracle+SQL高级编程

    Oracle SQL高级编程是数据库管理与开发领域中的一个重要主题,它涵盖了数据库设计、查询优化、存储过程、触发器、索引策略、并发控制以及安全性等方面的知识。在这个领域,Oracle数据库系统以其强大功能和广泛的企业...

Global site tag (gtag.js) - Google Analytics