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

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

相关推荐
东风破_6 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
CoderIsArt6 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
微尘寒风6 小时前
【Git】的安装和使用
java·git
y = xⁿ7 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
侧耳倾听1117 小时前
jwt使用简介
java·jwt
橙子家7 小时前
OSS 文件上传的几个风险点和解决方案
数据库
顶点多余8 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI人工智能+电脑小能手8 小时前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
jay神8 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
AI情绪识别开源8 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试