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

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

相关推荐
groundhappy3 分钟前
idalib安装和codex ida-mcp配置
linux·开发语言·python
做个文艺程序员13 分钟前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus
TlSfoward23 分钟前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记33 分钟前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发1 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
小钻风33661 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
SelectDB1 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库
其美杰布-富贵-李1 小时前
Spring Boot 工程开发全流程说明
java·spring boot·后端
Database_Cool_2 小时前
AI Agent 长期记忆怎么存?阿里云 PolarDB-X 对接 Mem0 记忆框架实践
数据库·阿里云
qq_452396232 小时前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang