JDBC事务
2021/8/17 23:10:05
本文主要是介绍JDBC事务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JDBC事务
事务:
要么都成功
要么都失败
ACID标准:
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
开启事务 setAutoCommit(false); 事务提交 commit(); 事务回滚 rooback(); 关闭事务
start transaction ;#开启事务 update account set money = money-100 where name = 'A'; update account set money = money+100 where name = 'B'; rollback;#事务回滚 commit; #提交事务
public class TestTransaction { @Test public void test(){ Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; try { // 获取数据库连接 conn = jdbcUtils.getConnection(); // 通知数据库开启事务,false 开启 conn.setAutoCommit(false); // 编辑SQL语句 String sql1 = "update account set money = money-100 where name = 'A';"; // 预编译第一条SQL 执行 conn.prepareStatement(sql1).executeUpdate(); // 制造错误 int i=1/0; // 第二条 sql String sql2 = "update account set money = money+100 where name = 'B';"; // 预编译第二条SQL语句 conn.prepareStatement(sql2).executeUpdate(); // 以上两条SQL语句都执行曾公,就提交事务 conn.commit(); System.out.println("success"); } catch (Exception e) { try{ // 如果出现异常,就通知数据库回滚事务 conn.rollback(); }catch (SQLException throwables){ throwables.printStackTrace(); } e.printStackTrace(); }finally { // 释放连接 jdbcUtils.release(conn,pst,null); } } }
这篇关于JDBC事务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework
- 2025-01-03如果 Azure-Samples/aks-store-demo 使用了 Score 会怎样?
- 2025-01-03Apache Flink概述:实时数据处理的利器
- 2025-01-01使用 SVN合并操作时,怎么解决冲突的情况?-icode9专业技术文章分享
- 2025-01-01告别Anaconda?试试这些替代品吧
- 2024-12-31自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator
- 2024-12-31自学记录鸿蒙 API 13:骨骼点检测应用Core Vision Skeleton Detection