[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();
    }
}

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

相关推荐
程序员zgh11 小时前
C++ erase() 函数用法
c语言·开发语言·c++·学习
小蒜学长11 小时前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统
lee_tianbai11 小时前
Java SSM 电影票预定系统|完整前后端项目,开箱即用(源码分享)
java·开发语言·数据库
SM_YHJ11 小时前
RFID通道门禁与资产台账联动的自动登记技术实现方案
大数据·数据库·人工智能
PaperData11 小时前
2014-2024年省级居民消费结构升级
数据库
小坏讲微服务11 小时前
Spring Boot 4 新特性全解析:从上手到生产实战
java·spring boot·后端·架构·springboot4
砚底藏山河11 小时前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
集智飞行11 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
Java后端的Ai之路11 小时前
昇腾NPU显存管理避坑指南:从npu-smi输出精准识别空闲卡的底层逻辑与实战
服务器·网络·数据库·npu·大模型服务
迪丽热爱12 小时前
一、C语言概述与程序结构
c语言·开发语言·算法