`
royzhou1985
  • 浏览: 255444 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

事务回滚

    博客分类:
  • Java
阅读更多
JDBC中事务的回滚
可设置回滚的保存点,即可commit部分操作,只需要设置相应的回滚点Savepoint sp
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Savepoint;
import java.sql.Statement;

public class SavePointTest {

	/**
	 * @param args
	 * @throws SQLException
	 */
	public static void main(String[] args) throws SQLException {
		test();
	}

	static void test() throws SQLException {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		Savepoint sp = null;
		try {
			conn = JdbcUtils.getConnection();
			conn.setAutoCommit(false);			
			st = conn.createStatement();
			String sql = "update user set money=money-10 where id=1";
			st.executeUpdate(sql);
			sp = conn.setSavepoint();

			sql = "update user set money=money-10 where id=3";
			st.executeUpdate(sql);

			sql = "select money from user where id=2";
			rs = st.executeQuery(sql);
			float money = 0.0f;
			if (rs.next()) {
				money = rs.getFloat("money");
			}
			if (money > 300)
				throw new RuntimeException("已经超过最大值!");

			sql = "update user set money=money+10 where id=2";
			st.executeUpdate(sql);

			conn.commit();
		} catch (RuntimeException e) {
			if (conn != null && sp != null) {
				conn.rollback(sp);//设置回滚点
				conn.commit();
			}
			throw e;
		} catch (SQLException e) {
			if (conn != null)
				conn.rollback();
			throw e;
		} finally {
			JdbcUtils.free(rs, st, conn);
		}
	}
}


分享到:
评论

相关推荐

    简单的c#事务回滚实例代码

    在.NET框架中,C#语言提供了对事务处理的强大支持,特别是在数据库操作中,事务回滚是确保数据一致性的重要机制。本实例将详细讲解如何在C#中实现简单的事务回滚功能,以应对在执行多条SQL语句时可能出现的错误。 ...

    Spring/SpringMVC/MyBatis整合+事务回滚

    在"Spring/SpringMVC/MyBatis整合+事务回滚"的主题中,我们将深入探讨如何将这三个框架整合起来,并实现事务的回滚功能。 首先,Spring框架是核心,它提供了依赖注入(DI)和面向切面编程(AOP)的能力,使得代码更...

    Spring+Mybatis整合事务回滚

    花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...

    spring 简单实例 事务回滚

    在这个“spring简单实例 事务回滚”的案例中,我们将深入探讨Spring如何处理事务回滚,以及它是如何在Java源码层面实现这一功能的。 首先,让我们理解什么是事务。在数据库操作中,事务是确保数据一致性的重要机制...

    批量导入Excel数据到数据库,带数据校验/事务回滚

    本文将深入探讨如何实现这个过程,并重点讨论数据校验和事务回滚两个关键环节。 首先,批量导入Excel数据的核心在于读取Excel文件。在.NET中,可以使用多种库来实现这一功能,如`Microsoft.Office.Interop.Excel`...

    导入Excel到数据库的完整案例,带数据校验/事务回滚

    本案例提供了一个全面的解决方案,包括数据校验、数据库事务回滚、Excel预览以及日志记录等功能,确保数据导入过程的稳定性和准确性。 首先,数据导入的核心是读取Excel文件。可以使用Microsoft Office Interop库来...

    java 数据库操作,事务回滚

    java 应用程序操作数据库实例,若出现sql异常则事务回滚。

    SQL 事务回滚解决 回滚无效的情况

    SQL 事务回滚解决回滚无效的情况 BEGIN TRY END TRY CAHTH

    带事务回滚测试的SSH整合小案例(Spring 3.2+Hibernate 3.3+Struts 2.3)

    集成了Spring 3.2.2 Hibernate 3.3.2 Struts 2.3.4 用JPA的注解实现orm 不用创建数据库表 只需本机上有oracle即可 用JSR注解进行Spring的...用Spring Test整合Junit4 进行测试并自动事务回滚 不对数据库造成持久化操作

    redis事务回滚工具

    基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。...

    Spring中@Transactional事务回滚(含实例

    本文将深入解析`@Transactional`的事务回滚机制,并通过实例来详细讲解其工作原理,帮助读者理解和应用这一核心功能。 一、`@Transactional`注解介绍 `@Transactional`是Spring提供的一个注解,用于在方法级别或类...

    oracle 事务 回滚 存储过程

    在Oracle数据库环境中,事务管理与存储过程的结合是实现数据一致性、事务回滚以及错误处理的关键技术之一。本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### ...

    有关数据库事务回滚机制实例

    在探讨数据库事务回滚机制实例之前,我们先来理解一下什么是数据库事务以及为什么需要事务管理。数据库事务(Transaction)是指一组逻辑操作单元,这组操作要么全部成功,要么全部失败,是一个不可分割的工作单位。...

    mongoDB 4.0事务回滚的辛酸历程探究

    事务回滚是事务处理中的关键部分,确保在出现错误或异常时,数据库能够恢复到事务开始之前的状态。 在升级到MongoDB 4.0之后,首先需要注意的是确保环境的兼容性。使用Homebrew升级MongoDB到4.0.0版本,同时更新`...

    使用SpringBoot注解方式处理事务回滚实现

    使用 SpringBoot 注解方式处理事务回滚实现 在本文中,我们将介绍使用 SpringBoot 注解方式处理事务回滚实现的方法,并通过示例代码进行详细的讲解。本文对于学习 SpringBoot 的开发者或者工作中需要实现事务回滚的...

    smartsofthelp 数据库SQL 事务回滚测试工具

    smartsofthelp 数据库SQL 事务回滚测试工具 sql 语句多条任务添加 SQL事务回滚测试工具

    oracle回滚段使用率过高之解决方法

    Oracle 回滚段是一种重要的数据库机制,它用于存放数据修改之前的值,以便在事务回滚或恢复时使用。然而,回滚段使用率过高可能会导致数据库性能下降和空间不足的问题。本文将介绍 Oracle 回滚段的概念、用法和规划...

    SQL Server数据库P166 (3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束.sql

    内容概述:SQL Server数据库相关内容,对应张磊著《SQL Server数据库应用技术项目化教程》中166页(3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束所对应的源码。代码经个人运行后无误,如果下载后运行...

    分布式简易事务回滚框架:biz-center-base-transaction

    分布式简易事务回滚框架:biz-center-base-transaction

Global site tag (gtag.js) - Google Analytics