解释事务的概念; 事务控制是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(); } } }
//输出结果;一行受影响
相关推荐
Sharding-JDBC是阿里巴巴开源的一款轻量级数据库中间件,它为Java开发者提供了一种透明化的数据分片解决方案,同时也支持分布式事务处理。在现代互联网应用中,面对海量数据和高并发的挑战,分布式事务成为了必不可...
### JavaBean中使用JDBC方式进行事务处理 #### 一、引言 在现代软件开发过程中,数据一致性是非常关键的一个方面,特别是在涉及到多个数据库操作时。本文将详细介绍如何在JavaBean中利用JDBC(Java Database ...
在Java编程中,事务处理是确保数据库操作的原子性、一致性、隔离性和持久性的关键机制。JDBC(Java Database ...在实际应用中,根据需求选择合适的事务处理机制是至关重要的,以确保系统的稳定性和数据的完整性。
本篇将深入探讨JDBC中的事务处理,以及如何在Java应用程序中实现事务控制。 **一、JDBC事务的基本概念** 事务(Transaction)是数据库操作的一个逻辑单元,包含一组操作,这些操作要么全部执行,要么全部不执行。...
在Java数据库连接(JDBC)中,事务处理是确保数据一致性、完整性和原子性的重要机制。本教程将深入探讨如何利用JDBC进行事务管理,并与Spring框架中的事务管理相结合。 首先,事务是一组数据库操作,这些操作被视为...
在压缩包文件`test_spring_jdbc`中,可能包含了示例代码或者测试用例,用于演示如何在Spring应用中配置和使用JDBC事务管理。通过对这些文件的分析和实践,可以加深对Spring JDBC事务管理的理解和应用。 总结来说,...
在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好提交,然后再决定全局提交或回滚。JTA事务更复杂,但能保证分布式事务的一致性。 最后,我们提到的是**事务的传播特性**,这是Spring...
在Java中,JDBC事务处理主要涉及以下几个关键概念: 1. **Connection对象**:它是与数据库的会话,通过该对象可以开启、提交和回滚事务。在连接池中获取到的Connection通常已经自动开启了事务,但如果没有,可以...
JDBC事务管理是数据库...总之,JDBC事务管理是确保数据库操作正确性和一致性的关键,通过理解和应用ACID原则以及适当的并发控制机制,开发人员可以有效地处理并发环境下的事务处理,保证系统的稳定性和数据的完整性。
通过`jdbc_demo`这样的源码文件,开发者可以学习到如何在实际项目中使用这些概念,从而更好地理解和掌握JDBC事务处理。实践中,开发者可以参考这些示例代码,结合具体的业务需求,编写自己的事务管理逻辑。
本项目“JDBC事务管理项目”旨在教你如何在Java应用中使用JDBC来处理数据库事务,确保数据的一致性和完整性。 **事务的概念** 事务是数据库操作的基本单元,它包含了对数据库的一系列操作,这些操作要么全部成功,...
自动提交模式在处理单个独立的数据库操作时非常方便,但当我们需要一组操作作为事务处理时,例如在数据库迁移或复杂的业务逻辑中,关闭自动提交模式就显得尤为重要。这可以防止由于某个操作失败而影响整个事务,保证...
- 在实际应用中,不同的数据库可能支持的事务隔离级别不同,因此在编写代码时应考虑到这一点。 - 设置较低的隔离级别可以提高性能,但可能会导致数据不一致的问题;相反,设置较高的隔离级别可以提高数据一致性,但...
主要使用的注解有`@Transactional`,它可以应用到方法或类上,表示该方法或类的所有方法都在一个事务内执行。 3. **@Transactional注解** - **属性**:`value`用于指定事务管理器的bean名,通常默认为`...
本教程将深入探讨Java JDBC中的三层架构(三层架构是指表现层、业务逻辑层和数据访问层)以及事务处理,同时结合具体的转账案例来阐述可能遇到的问题和解决策略。此外,我们还会涉及单例模式和ThreadLocal在实际应用...
二、JDBC事务处理 在数据库操作中,事务处理确保一组操作要么全部成功,要么全部失败,保证数据的一致性。在JDBC中,我们可以通过以下方式管理事务: 1. 设置自动提交为false:默认情况下,JDBC的每个数据库操作都...
在IT领域,Spring框架是Java开发中的核心工具之一,它为构建高质量的、可维护的、松耦合的应用程序提供了强大的支持。本练习主要涵盖了Spring的三个方面:面向切面编程(AOP)、JDBC(Java Database Connectivity)...
在实际开发中,Spring框架提供了对JDBC事务管理的高级支持,通过声明式事务管理,开发者可以在XML配置或注解中定义事务边界,简化事务处理。例如,使用`@Transactional`注解可以声明一个方法为事务方法,Spring会...
在Java编程中,JDBC(Java Database Connectivity)是用于与数据库交互的一组接口和类。事务处理是数据库操作中的关键...在实际应用中,还需要考虑事务的隔离级别以及并发控制策略,以适应不同的业务需求和性能优化。
例如,使用Spring框架时,可以利用其AOP(面向切面编程)特性,结合事务管理注解或配置,实现事务的声明式管理,进一步简化事务处理。 综上所述,"jdbc连接数据库事务工厂模式"结合了JDBC的数据库操作、事务管理的...