Java与Oracle实现事务(JDBC事务)实例详解
发布时间 - 2026-01-11 01:28:33 点击率:次Java与Oracle实现事务(JDBC事务)实例详解

J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下怎样实现JDBC事务。
JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自己主动提交和手动提交,默认是自己主动提交。
自己主动提交就是:在JDBC中。在一个连接对象Connection中。默认把每一个SQL语句的运行都当做是一个事务(即每次运行完SQL语句都会马上将操作更新到数据库)。
手动提交就是:当须要一次性运行多个SQL语句,将多个SQL语句组成一个事务(即要么都成功,要么回滚全部的操作)时,就得手动提交。
看一个样例:
import java.sql.*;
public class TransactionTest{
public static void main(String[] args) throws SQLException {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","TransactionTest","123456");
//将事务模式设置为手动提交事务:
conn.setAutoCommit(false);
//设置事务的隔离级别。
conn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
//运行插入操作
String sqlInsert = "insert into t_user(userName,userPassword) values(?,?
)";
pstmt = conn.prepareStatement(sqlInsert);
pstmt.setString(1, "danny");
pstmt.setString(2, "123");
pstmt.executeUpdate();
//运行改动操作
String sqlUpdate = "update t_user set userPassword=? where userName = ?";
pstmt = conn.prepareStatement(sqlUpdate);
pstmt.setString(1, "123456");
pstmt.setString(2, "danny");
pstmt.executeUpdate();
//提交事务
conn.commit();
} catch (Exception e) {
// 若事务发生异常,回滚事务
conn.rollback();
}finally{
if (pstmt!=null) {
pstmt.close();
}
if (conn!=null) {
conn.close();
}
}
}
}
当须要插入和更新这两个操作同一时候运行时,要么两个操作都成功,假设有一个失败。则撤销全部的操作。
宏观来看须要例如以下四个步骤:
1、将事务模式设置为手动提交事务:
conn.setAutoCommit(false);
2、设置事务的隔离级别:
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
3、提交事务:
conn.commit();
4、假设发生异常,回滚事务:
conn.rollback();
从上面看,JDBC事务使用较为方便,但因为它是由Connection对象所控制的,所以它的缺点是事务的范围仅仅局限于一个数据库的连接,同一个事务中无法操作多个数据库。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java+Oracle实现事务
# JDBC事务
# Java与Oracle实现事务
# Java开发Oracle数据库连接JDBC Thin Driver 的三种方法
# Java使用Jdbc连接Oracle执行简单查询操作示例
# Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据
# Java使用JDBC连接Oracle_MSSQL实例代码
# java使用jdbc链接Oracle示例类分享
# java基于JDBC连接Oracle 11g Release2实例分析
# Java如果通过jdbc操作连接oracle数据库
# Java使用JDBC实现Oracle用户认证的方法详解
# JAVA使用JDBC连接oracle数据库的详细过程
# 多个
# 是由
# 设置为
# 是一个
# 两种
# 这两个
# 希望能
# 就得
# 因为它
# 谢谢大家
# 局限于
# 有一个
# 新到
# 把每
# 样例
# SQLException
# void
# main
# args
# String
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Angular 表单中正确绑定输入值以确保提交与验证正常工作
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
开心动漫网站制作软件下载,十分开心动画为何停播?
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何创建自定义Artisan命令?(代码示例)
如何在IIS管理器中快速创建并配置网站?
如何用腾讯建站主机快速创建免费网站?
如何用IIS7快速搭建并优化网站站点?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
微信公众帐号开发教程之图文消息全攻略
黑客如何通过漏洞一步步攻陷网站服务器?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
如何快速搭建安全的FTP站点?
如何注册花生壳免费域名并搭建个人网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何实现API资源集合?(Resource Collection教程)
Python制作简易注册登录系统
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何使用模型观察者?(Observer代码示例)
如何破解联通资金短缺导致的基站建设难题?
高端网站建设与定制开发一站式解决方案 中企动力
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
教学论文网站制作软件有哪些,写论文用什么软件
?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
如何在云主机上快速搭建网站?
如何基于云服务器快速搭建个人网站?
如何在橙子建站上传落地页?操作指南详解
如何用好域名打造高点击率的自主建站?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
免费网站制作appp,免费制作app哪个平台好?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
zabbix利用python脚本发送报警邮件的方法
怎样使用JSON进行数据交换_它有什么限制
iOS验证手机号的正则表达式
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制

