java 实现事务
java 实现事务
使用prepareStatement取代Statement
原因:prepareStatement可以避免sql注入且更加高效
开启事务
connection.setAutoCommit(false)
关闭自动提交的同时开启事务
package com.kuang.database;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TestTransaction {
public static void main(String[] args) throws SQLException {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JdbcUtil.getConnection();
// 关闭自动提交,同时会开启事务
connection.setAutoCommit(false);
String sql = "UPDATE users SET `NAME`='zhangsan' WHERE id =1";
preparedStatement = connection.prepareStatement(sql);
int i = preparedStatement.executeUpdate();
if (i> 0) {
System.out.println("update1 success");
}
int j =1/0;// 测试失败情况
String sql1 = "UPDATE users SET `NAME`='kuangshen' WHERE id =2";
preparedStatement = connection.prepareStatement(sql1);
i = preparedStatement.executeUpdate();
if (i> 0) {
System.out.println("update2 success");
}
connection.commit();
System.out.println("成功");
} catch (SQLException e) {
e.printStackTrace();
} finally {
preparedStatement.close();
connection.close();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理