`
lvhuiqing
  • 浏览: 258003 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

JDBC事务处理,以及提交点保存的代码

 
阅读更多
<p><textarea cols="50" rows="15" name="code" class="c-sharp">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 &gt; 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 &amp;&amp; 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);
}
}</textarea><textarea cols="50" rows="15" name="code" class="java">Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
conn.setAutoCommit(false);
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

st = conn.createStatement();
String sql = "update user set money=money-10 where id=1";
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 &gt; 400)
throw new RuntimeException("已经超过最大值!");
sql = "update user set money=money+10 where id=2";
st.executeUpdate(sql);
conn.commit();
} catch (SQLException e) {
if (conn != null)
conn.rollback();
throw e;
} finally {
JdbcUtils.free(rs, st, conn);
}</textarea></p>
分享到:
评论

相关推荐

    JDBC事务的保存点处理

    在本篇博文中,我们将深入探讨JDBC中的保存点处理,了解其工作原理以及如何在实际应用中使用它。 首先,我们需要理解JDBC事务的基本概念。JDBC支持四种事务隔离级别,包括读未提交(READ UNCOMMITTED)、读已提交...

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

    1. **JDBC事务的基本概念** - **事务**:事务是数据库系统中执行的一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)...

    JDBC事务管理的简单实现

    下面是关于JDBC事务管理的简单实现的知识点。 一、事务管理的必要性 在数据库编程中,事务管理是非常重要的一部分。它可以确保数据的一致性和完整性。事务管理可以防止数据的不一致和丢失,确保数据的安全和可靠性...

    JDBC事务操作例子所需jar包

    综上所述,理解JDBC事务处理以及正确使用`mysql-connector-java.jar`对于开发与MySQL数据库交互的Java应用程序至关重要。通过有效的事务管理,我们可以确保数据的完整性和一致性,避免因单个操作失败而导致整个系统...

    JDBC事务管理项目

    4. **持久性(Durability)**:一旦事务提交,其结果将永久保存,即使系统故障也不会丢失。 **JDBC事务管理方式** 在JDBC中,有两种事务管理方式:自动提交模式和手动提交模式。 1. **自动提交模式**:默认情况下...

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

    ### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...

    spring jdbc 事务

    - 持久性(Durability):一旦事务提交,其结果将永久保存,不会丢失。 在描述中提到的博客链接(由于实际链接无法访问,这里无法提供具体细节),可能详细讲述了如何在Spring中配置和使用JDBC事务,包括示例代码和...

    JDBC事物应用源码文件

    以下是关于JDBC事务应用的核心知识点: 1. **事务的基本概念**:事务是数据库操作的基本单元,它封装了一组逻辑操作。事务必须满足ACID(原子性、一致性、隔离性和持久性)属性,以保证数据的一致性。 2. **JDBC中...

    jdbc入门、分页以及事务

    **JDBC事务** 事务是数据库操作的基本单元,确保数据的一致性和完整性。JDBC提供了对事务的支持。 1. **开启事务**: 通过`Connection`对象的`setAutoCommit(false)`方法关闭自动提交,从而手动控制事务的开始。 2...

    事务处理java案例代码

    4. 持久性(Durability):一旦事务提交,其结果就会永久保存,即使系统崩溃也不会丢失。 在Java中,我们通常使用JDBC(Java Database Connectivity)来处理数据库事务。以下是一些关键步骤: 1. 连接数据库:通过...

    Java事务处理总结[归类].pdf

    持久性则确保一旦事务提交,其结果将永久保存。 Java事务主要分为三种类型:JDBC事务、JTA(Java Transaction API)事务和容器事务。 1. JDBC事务是基于数据库连接(Connection对象)进行控制的。默认情况下,JDBC...

    Java事务管理学习之JDBC详解

    Java事务管理学习之JDBC详解是Java事务管理学习的重要组成部分,文章详细介绍了Java事务管理学习之JDBC的相关知识点,包括事务的概念、特性、类型、JDBC事务管理等。 一、事务的概念 事务是数据库的逻辑工作单位,...

    在Java的JDBC使用中设置事务回滚的保存点的方法

    在处理复杂的数据库操作时,保存点(Savepoint)是一个非常有用的工具,特别是在需要部分回滚事务的情况下。本文将详细介绍如何在JDBC中设置和管理事务的保存点。 首先,了解JDBC中的事务控制。在默认情况下,JDBC...

    JDBC笔记.pdf

    本篇JDBC笔记详细介绍了JDBC编程的相关知识点,包括数据库连接、SQL语句执行、事务处理等,同时也涉及到了对MySQL数据库的增删改查操作和事务的ACID属性等重要概念。 首先,笔记中提到了JDBC驱动的概念。JDBC驱动是...

    Java事务的简单代码

    如果所有操作都成功,我们将提交事务,确保这些更改永久保存到数据库。 在实际应用中,Java事务管理可能会更复杂,包括使用Spring框架的@Transactional注解进行声明式事务管理,或者使用JTA(Java Transaction API...

    事务机制及相关代码实现

    而持久性意味着一旦事务提交,其结果将永久保存,即使系统出现故障。 在代码实现中,事务管理通常涉及编程语言和数据库驱动的交互。例如,在Java中,我们可以使用JDBC(Java Database Connectivity)API来管理事务...

    Hibernate事务处理

    4. **持久性(Durability)**:一旦事务提交,它对数据库所做的更改将是永久性的,即使系统发生故障,这些更改也应该能够恢复。 #### 二、事务支持的数据库类型 在MySQL中,并非所有的存储引擎都支持事务处理。...

    Java中数据库事务处理的代码清单.pdf

    以下是一份简化的Java中数据库事务处理的代码清单,以及相关的知识点解析。 1. **连接数据库**: - 在`ConnectAccess.java`类中,通过`Class.forName()`方法加载数据库驱动,这里是JDBC的Access驱动。`url`属性...

    day36 09-Hibernate中的事务:事务处理

    Session对象则相当于JDBC中的Connection,是与数据库交互的桥梁,它负责执行SQL语句、保存、更新和删除持久化对象。 **三、事务的四种隔离级别** 在数据库系统中,事务有四种隔离级别:读未提交(READ UNCOMMITTED...

    jdbc+spring+mysql事务理解和分析

    4. **持久性(Durability)**:一旦事务提交,其对数据库的更改就应永久保存,即使系统崩溃也应能恢复。在Spring中,通过`PlatformTransactionManager`和`DataSourceTransactionManager`等类来确保事务的持久性。 在...

Global site tag (gtag.js) - Google Analytics