当前位置:网站首页>使用Connection对象连接管理事务
使用Connection对象连接管理事务
2022-08-09 13:25:00 【Camellia——】
package com.lin.jdbc_05;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.lin.jdbc_01.JDBCUtils;
/*
* 事物:将一个业务整体使用事物管理起来,要么同时成功,要么同时失败!(Transaction)
* 使用Java代码的管理事务
* Connection对象管理事物
*
* 成员方法:
* void setAutoCommit(boolean autoCommit):开启事物
* 参数为true:开启自动提交模式,为false,手动提交
void rollback():取消当前事物中的所有更改(回滚了)
void commit():使所有上一次提交/回滚后进行的更改成为持久更改
模拟:张三给李四转账500
* */
public class JdbcTest {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement stmt=null;
try {
// 注册驱动
// 获取连接对象
conn = JDBCUtils.getConnection();
// 开启手动提交
conn.setAutoCommit(false);
// 准备SQL
// 张三-500
String sql1 = "update account set balance = balance - ? where id = ? ;" ;
//将参数化的sql发送到数据库进行预编译,并同时获取预编译对象
stmt=conn.prepareStatement(sql1);
// 执行sql
stmt.setInt(1, 500);
stmt.setInt(2, 1);
// 执行sql
stmt.executeUpdate();
// 出现异常
// int num=1/0;
// 李四+500
String sql2 = "update account set balance = balance + ? where id = ?;" ;
stmt=conn.prepareStatement(sql2);
stmt.setInt(1, 500);
stmt.setInt(2, 2);
stmt.executeUpdate();
// 提交事物
conn.commit();
System.out.println("事物提交成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
// 执行catch语句,如果出问题,事物回滚
if(conn!=null) {
try {
System.out.println("回滚");
// 取消之前所有的更改
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}finally {
JDBCUtils.close( stmt, conn);
}
}
}

边栏推荐
猜你喜欢
随机推荐
vs怎么用一个Button链接到另一个页面
系统可扩展性思考
蓝桥杯嵌入式(STM32F103RBT6)最全攻略(一)
Spark读取多目录
蓝桥历届真题-既约分数
group by的工作原理和优化思路
pytest 之 allure报告
零基础学习CANoe Panel 设计目录
Jetpack Compose——Button(按钮)的使用
Es7.x使用RestHighLevelClient进行查询操作
响应式pbootcms模板外贸灯具类网站
微信实现扫码支付(native)
Dry+Bean+Dataset R language data analysis, report in English
VNet
Jetpack Compose - Use of TextField and OutlinedTextField (text box)
202五一杯数学建模ABC三题
理解redis,一篇就够
2个有序数组排序
响应式pbootcms模板家禽饲养类网站
Three kinds of ThreadLocal, play with thread variable storage and transmission









