JDBC事务的保存点处理
在JDBC的事物处理中,可以应用保存点技术,对一个事物中的处理进行部分提交.
如下示例,三个处理
1,张三减10元
2,李四加10元
3,李四加100元,
在3的地方出错的话,把1和2的处理进行提交,使用了保存点技术.
示例代码:
package test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Savepoint;
public class SavePoint {
public static void main(String[] args) throws Exception {
savepoint();
}
public static void savepoint() throws Exception {
// TODO Auto-generated method stub
System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/jdbc", "root", "");
//初始化不自动提交
conn.setAutoCommit(false);
// 张三减10元
String sql = "update user set money = money - 10 where id = 1";
PreparedStatement st = conn.prepareStatement(sql);
st.executeUpdate();
// 李四加10元
sql = "update user set money = money + 10 where id = 2";
st = conn.prepareStatement(sql);
st.executeUpdate();
// 设立保存点
Savepoint sp = conn.setSavepoint();
// 李四加再加100元(SQL的where关键字写的不对,会出现异常)
sql = "update user set money = money + 100 wherewhere id = 2";
st = conn.prepareStatement(sql);
try {
st.executeUpdate();
} catch (Exception e) {
// 回滚到李四加10元后的状态
conn.rollback(sp);
System.out.println ("回滚到李四加10元后的状态");
}
conn.commit();
st.close();
conn.close();
}
}
执行文件后,查看数据库的记录,可以发现张三减少了10元,而李四增加了10元.
第三个处理李四再加100元的操作并没有进行.
总结:
1,开始要把connection设置成不进行自动提交
2,中间设定保存点
3,回滚的地方要使用保存点
4,最后不要忘记进行commit
分享到:
相关推荐
下面是关于JDBC事务管理的简单实现的知识点。 一、事务管理的必要性 在数据库编程中,事务管理是非常重要的一部分。它可以确保数据的一致性和完整性。事务管理可以防止数据的不一致和丢失,确保数据的安全和可靠性...
JDBC事务管理是数据库...总之,JDBC事务管理是确保数据库操作正确性和一致性的关键,通过理解和应用ACID原则以及适当的并发控制机制,开发人员可以有效地处理并发环境下的事务处理,保证系统的稳定性和数据的完整性。
**JDBC事务**主要针对单个数据库连接,由数据库管理系统(DBMS)自身管理事务。JDBC提供了`Connection`对象的`commit()`和`rollback()`方法用于提交和回滚事务。这是简单的单阶段提交,适用于单一数据源的情况。 **...
在Java中,JDBC事务处理主要涉及以下几个关键概念: 1. **Connection对象**:它是与数据库的会话,通过该对象可以开启、提交和回滚事务。在连接池中获取到的Connection通常已经自动开启了事务,但如果没有,可以...
### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...
本项目“JDBC事务管理项目”旨在教你如何在Java应用中使用JDBC来处理数据库事务,确保数据的一致性和完整性。 **事务的概念** 事务是数据库操作的基本单元,它包含了对数据库的一系列操作,这些操作要么全部成功,...
1. **JDBC事务的基本概念** - **事务**:事务是数据库系统中执行的一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)...
在描述中提到的博客链接(由于实际链接无法访问,这里无法提供具体细节),可能详细讲述了如何在Spring中配置和使用JDBC事务,包括示例代码和常见问题解决。在实际项目中,理解并正确应用这些事务管理机制对于保证...
**JDBC事务初探** Java Database Connectivity(JDBC)是Java平台中用于与关系数据库进行交互的API。在处理数据库操作时,事务管理是至关重要的一个环节,它确保了数据的一致性和完整性。本篇文章将深入探讨JDBC中...
Java事务管理学习之JDBC详解是Java事务管理学习的重要组成部分,文章详细介绍了Java事务管理学习之JDBC的相关知识点,包括事务的概念、特性、类型、JDBC事务管理等。 一、事务的概念 事务是数据库的逻辑工作单位,...
**JDBC事务** 事务是数据库操作的基本单元,确保数据的一致性和完整性。JDBC提供了对事务的支持。 1. **开启事务**: 通过`Connection`对象的`setAutoCommit(false)`方法关闭自动提交,从而手动控制事务的开始。 2...
在处理复杂的数据库操作时,保存点(Savepoint)是一个非常有用的工具,特别是在需要部分回滚事务的情况下。本文将详细介绍如何在JDBC中设置和管理事务的保存点。 首先,了解JDBC中的事务控制。在默认情况下,JDBC...
以下是关于JDBC事务应用的核心知识点: 1. **事务的基本概念**:事务是数据库操作的基本单元,它封装了一组逻辑操作。事务必须满足ACID(原子性、一致性、隔离性和持久性)属性,以保证数据的一致性。 2. **JDBC中...
然而,JDBC事务的局限性在于它只能在一个数据库连接的范围内操作,无法跨数据库进行事务处理。 2. JTA事务提供了一种更高级别的、与实现和协议无关的API,允许应用程序执行分布式事务,涉及多个网络资源和数据库。...
本篇JDBC笔记详细介绍了JDBC编程的相关知识点,包括数据库连接、SQL语句执行、事务处理等,同时也涉及到了对MySQL数据库的增删改查操作和事务的ACID属性等重要概念。 首先,笔记中提到了JDBC驱动的概念。JDBC驱动是...
2. **JDBC事务管理** - **手动提交与回滚**:通过Connection对象的commit()和rollback()方法来控制事务的开始、提交和回滚。 - **自动提交模式**:默认情况下,JDBC连接处于自动提交模式,每次SQL语句都会自动提交...
在实际开发中,Spring框架提供了对JDBC事务管理的高级支持,通过声明式事务管理,开发者可以在XML配置或注解中定义事务边界,简化事务处理。例如,使用`@Transactional`注解可以声明一个方法为事务方法,Spring会...
Oracle 事务处理是数据库管理中...总的来说,Oracle的事务处理机制是确保数据库操作正确性和一致性的重要工具,通过合理使用提交、回滚、保存点以及只读事务,可以有效地管理复杂的数据库操作,并保证数据的准确无误。