[JDBC]事务

一.JDBC中事务的写法

复制代码
@Test
public void testTransactionWithTryResource() {
    // try-with-resources 自动关闭连接/Statement
    try (Connection conn = getConn()) {
        // 1. 开启手动事务
        conn.setAutoCommit(false);

        // 2. 执行批量操作
        try (PreparedStatement ps1 = conn.prepareStatement("UPDATE t_account SET balance = balance - 100 WHERE name = 'A'");
             PreparedStatement ps2 = conn.prepareStatement("UPDATE t_account SET balance = balance + 100 WHERE name = 'B'")) {

            ps1.executeUpdate();
            ps2.executeUpdate();

            // 3. 提交事务
            conn.commit();
            System.out.println("转账成功!");
        } catch (Exception e) {
            // 4. 回滚事务
            conn.rollback();
            System.out.println("事务回滚!");
            e.printStackTrace();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

二.事务回滚导致不同的连接导致结果仍被修改的一些问题

相关推荐
2301_809204704 小时前
mysql在docker容器中如何部署_利用docker-compose快速启动
jvm·数据库·python
虹科网络安全4 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(上)
数据库·redis·bootstrap
野生技术架构师4 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
阿坤带你走近大数据4 小时前
怎么查看当前oracle库下的表空间temp大小或者默认大小
数据库·oracle
Legendary_0084 小时前
LDR6500:USB‑C DRP PD协议芯片技术详解与应用实践
c语言·开发语言
yoyo_zzm4 小时前
Laravel8.x新特性全解析
数据库·nginx
小袁拒绝摆烂5 小时前
多表关联大平层转JSON树形结构
java·json
2301_800976935 小时前
正则表达式
开发语言·python·正则表达式
故事还在继续吗5 小时前
C++20关键特性
开发语言·c++·c++20