10.JDBC事务
要么都成功,要么都失败!
ACID原则:保证数据的安全。
开启事务
事务提交
事务回滚
关闭事务
转账:
A:1000
B:1000
A(900)--100-->B(1100)
public class TestJDBC2 {
@Test
public void test() {
// 配置信息
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
String username = "root";
String password = "123456";
Connection connection = null;
// 1.加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
// 2.连接数据库 代表数据库
connection = DriverManager.getConnection(url, username, password);
// 3.通知数据库开启事务
connection.setAutoCommit(false); //false是开启
String sql = "update account set money = money-100 where name = 'A'";
connection.prepareStatement(sql).executeUpdate();
//制造错误
int i = 1/0;
String sql2 = "update account set money = money+100 where name = 'B'";
connection.prepareStatement(sql2).executeUpdate();
connection.commit();
System.out.println("提交成功");
}catch (Exception e){
try {
//如果出现异常 就通知数据库回滚事务
if (connection != null) {
connection.rollback();
}
}catch (SQLException e1){
e1.printStackTrace();
}
e.printStackTrace();
}finally {
try {
connection.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
作者:hashifei
出处:https://www.cnblogs.com/hashifei/p/18179399
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)