`
百合不是茶
  • 浏览: 354690 次
社区版块
存档分类
最新评论

JDBC中事务处理应用

阅读更多

 

解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复

 

事务常用命令:

            Commit提交

            rollback;回滚

           savepoint;保存点

 

例如在实际开发中我们会处理很多的数据,但是一旦提交数据将无法修改,这时会出现灾难性的事件;因此事务控制就显得格外的重要与特别

 

     a),rollback还原为厨师数据,将sal改成1200

update emp  set sal=1200 where ename='SMITH

     

    此时我发现不想改sal的数,如果没commit还可以还原

 rollback;

      rollback是每次都还原原始数据800

 

 

  b),savepoint保存点和commit的使用 

    1 ,将sal改为800

update emp  set sal=800 where ename='SMITH

    

   2 ,将sal改为500 并设置savepoint a1

update emp  set sal=800 where ename='SMITH

   

  3,将sal改为1500 并设置savepoint a2

update emp  set sal=800 where ename='SMITH

  

   4,还原a2

   rollback to a2;

 

 通过设置savepoint可以还原到我们需要的数据地点

 

事物;是为了保证对数据操作的一致性和统一性 
 commit;提交事物,将数据更新到数据库中去,一旦事物被提交就无法还原
 rollback 回滚  还原到上一次提交事物时的状态
 savepoint a1 创建一个还原点,a1是还原点的名称,rollback to a1;还原到a1的保存点
  
    一旦提交事物所有的保存点都失效
    在执行退出命令的时候会自动的先提交事物

     jdbc中一旦执行数据编译自动提交

 

 

 

JDBC中事务的应用;保证数据的一致性

 

  如下代码;没有加入事务的概念,数据会出错并且不能回复

 

package 数据库操作;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *  * @author Administrator
 */
public class OracleDemo {

	public static void main(String[] args)  {
		 Connection conn;
		try {
			//1.加载数据驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
		
			//2.定义字符串
			String url ="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
			
			//3,链接数据库
			 conn = DriverManager.getConnection(url, "scott", "tiger");
			
			//4,创建数据操作对象
			Statement stm = conn.createStatement();
		    //5,更新需要的数据
			String sql = "Update emp set sal = 800 where ename ='SMITH'";
			//两行错的
			String str = "abds";
			int len = Integer.parseInt(str);
			int num =stm.executeUpdate(sql);
			System.out.println(len);
		     System.out.println("有"+num+"行受影响");			
			}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();				
	 }
	}
}

 

 //编译出错,但是sql语句已经执行,commit已经提交

 

 

 

 

 

怎么设置出错时commit不自动的提交

 

 

 

 

package 数据库操作;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * java连接JDBC的事物控制联系
 * @author Administrator
 *roolback  ,commit,savepoint  事物控制
 */
public class OracleDemo {

	public static void main(String[] args)  {
		 Connection conn;
		try {
			//1.加载数据驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
		
			//2.定义字符串
			String url ="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
			
			//3,链接数据库
			 conn = DriverManager.getConnection(url, "scott", "tiger");
			
			//4,创建数据操作对象
			Statement stm = conn.createStatement();
			
			try{
				//设置禁止自动提交
			conn.setAutoCommit(false);
			//5,更新需要的数据
			String sql = "Update emp set sal = 800 where ename ='SMITH'";
			String str = "abds";
			int len = Integer.parseInt(str);
			int num =stm.executeUpdate(sql);
			System.out.println(len);
			 System.out.println("有"+num+"行受影响");
			 //执行完毕后再提交
			 conn.commit();	
		} catch (Exception e) {
			 conn.rollback();
			 System.out.println("执行了回滚的操作...........");
			e.printStackTrace();				
	}
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();				
	 }
	}
}

 

//输出结果;一行受影响

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Sharding-JDBC分布式事务应用

    Sharding-JDBC是阿里巴巴开源的一款轻量级数据库中间件,它为Java开发者提供了一种透明化的数据分片解决方案,同时也支持分布式事务处理。在现代互联网应用中,面对海量数据和高并发的挑战,分布式事务成为了必不可...

    JavaBean中使用JDBC方式进行事务处理

    ### JavaBean中使用JDBC方式进行事务处理 #### 一、引言 在现代软件开发过程中,数据一致性是非常关键的一个方面,特别是在涉及到多个数据库操作时。本文将详细介绍如何在JavaBean中利用JDBC(Java Database ...

    JDBC事务处理机制探秘

    在Java编程中,事务处理是确保数据库操作的原子性、一致性、隔离性和持久性的关键机制。JDBC(Java Database ...在实际应用中,根据需求选择合适的事务处理机制是至关重要的,以确保系统的稳定性和数据的完整性。

    JDBC的事务初探

    本篇将深入探讨JDBC中的事务处理,以及如何在Java应用程序中实现事务控制。 **一、JDBC事务的基本概念** 事务(Transaction)是数据库操作的一个逻辑单元,包含一组操作,这些操作要么全部执行,要么全部不执行。...

    08JDBC的事务处理.zip

    在Java数据库连接(JDBC)中,事务处理是确保数据一致性、完整性和原子性的重要机制。本教程将深入探讨如何利用JDBC进行事务管理,并与Spring框架中的事务管理相结合。 首先,事务是一组数据库操作,这些操作被视为...

    spring JDBC事务管理

    在压缩包文件`test_spring_jdbc`中,可能包含了示例代码或者测试用例,用于演示如何在Spring应用中配置和使用JDBC事务管理。通过对这些文件的分析和实践,可以加深对Spring JDBC事务管理的理解和应用。 总结来说,...

    JDBC事务 JTA事务 传播特性 隔离级别

    在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好提交,然后再决定全局提交或回滚。JTA事务更复杂,但能保证分布式事务的一致性。 最后,我们提到的是**事务的传播特性**,这是Spring...

    JDBC事务操作例子所需jar包

    在Java中,JDBC事务处理主要涉及以下几个关键概念: 1. **Connection对象**:它是与数据库的会话,通过该对象可以开启、提交和回滚事务。在连接池中获取到的Connection通常已经自动开启了事务,但如果没有,可以...

    JDBC事务管理.docx

    JDBC事务管理是数据库...总之,JDBC事务管理是确保数据库操作正确性和一致性的关键,通过理解和应用ACID原则以及适当的并发控制机制,开发人员可以有效地处理并发环境下的事务处理,保证系统的稳定性和数据的完整性。

    JDBC事物应用源码文件

    通过`jdbc_demo`这样的源码文件,开发者可以学习到如何在实际项目中使用这些概念,从而更好地理解和掌握JDBC事务处理。实践中,开发者可以参考这些示例代码,结合具体的业务需求,编写自己的事务管理逻辑。

    JDBC事务管理项目

    本项目“JDBC事务管理项目”旨在教你如何在Java应用中使用JDBC来处理数据库事务,确保数据的一致性和完整性。 **事务的概念** 事务是数据库操作的基本单元,它包含了对数据库的一系列操作,这些操作要么全部成功,...

    JDBC设置事务自动提交

    自动提交模式在处理单个独立的数据库操作时非常方便,但当我们需要一组操作作为事务处理时,例如在数据库迁移或复杂的业务逻辑中,关闭自动提交模式就显得尤为重要。这可以防止由于某个操作失败而影响整个事务,保证...

    JDBC事务控制--讲述如何控制JDBC事务

    - 在实际应用中,不同的数据库可能支持的事务隔离级别不同,因此在编写代码时应考虑到这一点。 - 设置较低的隔离级别可以提高性能,但可能会导致数据不一致的问题;相反,设置较高的隔离级别可以提高数据一致性,但...

    SpringJDBC注解事务.zip

    主要使用的注解有`@Transactional`,它可以应用到方法或类上,表示该方法或类的所有方法都在一个事务内执行。 3. **@Transactional注解** - **属性**:`value`用于指定事务管理器的bean名,通常默认为`...

    Java jdbc三层及事务(转账案例)

    本教程将深入探讨Java JDBC中的三层架构(三层架构是指表现层、业务逻辑层和数据访问层)以及事务处理,同时结合具体的转账案例来阐述可能遇到的问题和解决策略。此外,我们还会涉及单例模式和ThreadLocal在实际应用...

    jdbc连接各数据库及事务处理

    二、JDBC事务处理 在数据库操作中,事务处理确保一组操作要么全部成功,要么全部失败,保证数据的一致性。在JDBC中,我们可以通过以下方式管理事务: 1. 设置自动提交为false:默认情况下,JDBC的每个数据库操作都...

    Spring aop、jdbc和事务tx练习

    在IT领域,Spring框架是Java开发中的核心工具之一,它为构建高质量的、可维护的、松耦合的应用程序提供了强大的支持。本练习主要涵盖了Spring的三个方面:面向切面编程(AOP)、JDBC(Java Database Connectivity)...

    day18-事务与连接池 3.jdbc中事务操作介绍

    在实际开发中,Spring框架提供了对JDBC事务管理的高级支持,通过声明式事务管理,开发者可以在XML配置或注解中定义事务边界,简化事务处理。例如,使用`@Transactional`注解可以声明一个方法为事务方法,Spring会...

    JDBC事务处理、提交、回滚。.docx

    在Java编程中,JDBC(Java Database Connectivity)是用于与数据库交互的一组接口和类。事务处理是数据库操作中的关键...在实际应用中,还需要考虑事务的隔离级别以及并发控制策略,以适应不同的业务需求和性能优化。

    jdbc连接数据库事务工厂模式

    例如,使用Spring框架时,可以利用其AOP(面向切面编程)特性,结合事务管理注解或配置,实现事务的声明式管理,进一步简化事务处理。 综上所述,"jdbc连接数据库事务工厂模式"结合了JDBC的数据库操作、事务管理的...

Global site tag (gtag.js) - Google Analytics