我是靠谱客的博主 隐形百褶裙,最近开发中收集的这篇文章主要介绍JDBC之【事务的控制】JDBC事务机制JDBC实现手动提交事务,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JDBC事务机制

1、JDBC中的事务是自动提交的,只要执行任意一条SQL语句,则提交一次。这是JDBC默认的事务行为。

2、但是在一般情况下,通常都是N条DML语句共同联合才能完成,必须保证这些DML语句在同一个事务中同时成功或者同时失败。

JDBC实现手动提交事务

开启事务:connection.setAutoCommit(boolean)

提交事务:connection.commit();

回滚事务:connection.rollback();

public static void main(String[] args) {
// 定义变量
Connection connection = null;
PreparedStatement ps = null;
try {
// 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/MyTest","root", "*******");
// 将自动提交机制改为手动提交
connection.setAutoCommit(false); // 开启事务
// 获取数据库操作对象
String sql = "update dept set dname = ? where deptno = '10'";
ps = connection.prepareStatement(sql);
// 给占位符传值
ps.setString(1, "beijing");
// 执行sql
int count = ps.executeUpdate();
System.out.println(count == 1 ? "操作成功" : "操作失败");
connection.commit(); // 提交事务
} catch (ClassNotFoundException | SQLException e) {
if(connection != null){
try {
connection.rollback(); // 回滚事务
} catch (SQLException ex) {
ex.printStackTrace();
}
}
e.printStackTrace();
} finally {
// 释放资源
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

最后

以上就是隐形百褶裙为你收集整理的JDBC之【事务的控制】JDBC事务机制JDBC实现手动提交事务的全部内容,希望文章能够帮你解决JDBC之【事务的控制】JDBC事务机制JDBC实现手动提交事务所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部