1:事务的特征:ACID
atomic :原子性:一个事务是一个不可分割的单位
consitency 一致性:事务开始结束之后,数据库完整性约束没有被破坏
约束:PK FK not null check unique
isolaction 隔离性:一个事务的执行,不被其它事务干扰
durable 持久性:数据应该持久保存
2:事务的边界Autocommit
Autocommit :事务的自动的提交:
JDBC默认是自动提交事务,Autocommit=true
默认情况下事务的边界:
对于insert update delete 是在statement执行完
对于select resultSet 关闭
autocommit 手动提交Autocommit=false
只能手动设置事务的边界,也就是手动提交事务
conn.commit();
Autocommit=false,如果不手动提交事务,那么connection 在显示关闭的时候提交了事务
如果没有显示关闭的connection,事务是不会提交,
connection autoCommit 不要默认true的情况,
设置为false,catch异常一定要要rollback
3:事务的隔离级别
问题:
脏读:允许读取到别的事务未提交的数据
不可重复读:同一事务在2此读取一条数据,读取后结果不一致
幻象读:在一个事务中读取别的事务插入进来的数据
oracle 默认支持:read Comitted 和serializable
transaction read uncomitted
可以读取到别的事务未提交的数据
transaction comitted
只能读取到别的事务已经提交数据
transaction repeatable read
在一个事务中多次读取同一条记录结果是重复的
transaction serializable
在一个事务中,读取数据,如果别的事务插入的数据,
每此读取到相同的结果
jdbc 3.0规范中(请自行到www.jcp.org查阅)提到jdbc支持五中事务隔离级别
原文
1. TRANSACTION_NONE — indicates that the driver does not support transactions,which means that it is not a JDBC compliant driver.
2. TRANSACTION_READ_UNCOMMITTED — allows transactions to see uncommittedchanges to the data. This means that dirty reads, nonrepeatable reads, and phantom reads are possible.
3. TRANSACTION_READ_COMMITTED — means that any changes made inside atransaction are not visible outside the transaction until the transaction iscommitted. This prevents dirty reads, but nonrepeatable reads and phantom reads are still possible.
4. TRANSACTION_REPEATABLE_READ — disallows dirty reads and nonrepeatablereads. Phantom read are still possible.
5. TRANSACTION_SERIALIZABLE — specifies that dirty reads, nonrepeatable reads,and phantom reads are prevented.
问题 隔离级别 |
脏读 |
不可重复读 |
幻读 |
未提交读 |
Y |
Y |
Y |
提交读 |
N |
Y |
Y |
可重复读 |
N |
N |
Y |
序列化读 |
N |
N |
N |
4:SavePoint
Savepoint :给事务提供了更细粒度的控制
通过metadata 可以取到dirver是否支持metadata
相关推荐
总结起来,JDBC事务适用于简单的单库操作,而JTA事务则适合处理跨多个数据源的复杂事务场景。在J2EE环境中,容器管理的事务(如SessionBean中的JTA事务)能够提供更高的可伸缩性和可靠性。在实际应用中,根据需求...
### JavaBean中使用JDBC方式进行事务处理 #### 一、引言 在现代软件开发过程中,数据一致性是非常关键的一个方面,特别是在涉及到多个数据库操作时。本文将详细介绍如何在JavaBean中利用JDBC(Java Database ...
1. **JDBC事务的基本概念** - **事务**:事务是数据库系统中执行的一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)...
在Java中,JDBC事务处理主要涉及以下几个关键概念: 1. **Connection对象**:它是与数据库的会话,通过该对象可以开启、提交和回滚事务。在连接池中获取到的Connection通常已经自动开启了事务,但如果没有,可以...
Sharding-JDBC是阿里巴巴开源的一款轻量级数据库中间件,它为Java开发者提供了一种透明化的数据分片解决方案,同时也支持分布式事务处理。在现代互联网应用中,面对海量数据和高并发的挑战,分布式事务成为了必不可...
本教程将深入探讨Java JDBC中的三层架构(三层架构是指表现层、业务逻辑层和数据访问层)以及事务处理,同时结合具体的转账案例来阐述可能遇到的问题和解决策略。此外,我们还会涉及单例模式和ThreadLocal在实际应用...
Java(JDBC)事务处理
二、JDBC事务处理 在数据库操作中,事务处理确保一组操作要么全部成功,要么全部失败,保证数据的一致性。在JDBC中,我们可以通过以下方式管理事务: 1. 设置自动提交为false:默认情况下,JDBC的每个数据库操作都...
事务模板是指提供模板方法对事务处理的代码进行控制。事务模板可以简化事务管理的代码,提供了统一的事务管理方法。例如,TransactionTemplate类提供了executeTransaction()方法,用于执行事务回调方法。 五、事务...
**JDBC事务初探** Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准API。在处理数据库操作时,事务管理是确保数据一致性、完整性和持久性的重要机制。本篇将深入探讨JDBC中的事务处理,以及...
JDBC事务管理是数据库...总之,JDBC事务管理是确保数据库操作正确性和一致性的关键,通过理解和应用ACID原则以及适当的并发控制机制,开发人员可以有效地处理并发环境下的事务处理,保证系统的稳定性和数据的完整性。
在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好提交,然后再决定全局提交或回滚。JTA事务更复杂,但能保证分布式事务的一致性。 最后,我们提到的是**事务的传播特性**,这是Spring...
例如,一个典型的JDBC事务处理代码如下: ```java Connection con = DriverManager.getConnection(); con.setAutoCommit(false); try { // 事务中的操作 con.commit(); } catch (Exception e) { con.rollback(); ...
**源码分析**:深入理解Spring JDBC事务管理的源码,可以帮助开发者更好地定制和优化事务处理。关键类如`TransactionDefinition`定义了事务属性,如隔离级别、超时时间等;`TransactionStatus`接口则表示当前事务的...
JDBC 事务处理是通过 Connection 对象来控制事务的提交和回滚。例如,在 JDBC 中,可以使用 Connection 对象的 setAutoCommit 方法来禁用自动事务提交,然后使用 commit 方法来提交事务,或者使用 rollback 方法来回...
通过`jdbc_demo`这样的源码文件,开发者可以学习到如何在实际项目中使用这些概念,从而更好地理解和掌握JDBC事务处理。实践中,开发者可以参考这些示例代码,结合具体的业务需求,编写自己的事务管理逻辑。
### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...
这不利于事务处理,因为无法控制何时提交或回滚事务。 2. **手动提交模式**:通过调用`Connection`对象的`setAutoCommit(false)`方法,可以关闭自动提交,从而开始手动事务管理。在手动模式下,需要显式调用`commit...
JDBC事务处理 JDBC支持事务管理,可以控制一组数据库操作作为一个原子单元。通过设置Connection的自动提交属性(`conn.setAutoCommit(false)`)来开启手动事务,并使用`commit()`和`rollback()`方法提交或回滚事务...