一、前言

数据库事务是执行业务的每个逻辑单元一系列操作,可由一个或多个SQL语句组成。如执行的SQL都能被正确的执行,则这批SQL提交将被生效,否则都不成功,通过这样的事务控制有效的保障了数据库数据的完整一致性。对于JDBC提供了事务的实现控制,默认情况事务是自动提交的,所以每次提交executeUpdate方法时都会自动提交事务操作。如果前面提交到数据库数据自动生效,后面逻辑单元的SQL提交报错,这样就会因为非功能性问题(服务器宕机、硬件瓶颈等)破坏业务系统流程数据有效进行。解决这样的方法,先关闭JDBC自动提交功能,通过程序代码段进行控制,发生异常回滚代码。

二、代码示例public static void  main(String[] args){ @b@   Connection  conn=null; @b@   try{@b@@b@        Class.forName("oracle.jdbc.driver.OracleDriver");@b@        String url="jdbc:oracle:thin:@localhost:1521:xwood";@b@        conn=DriverManager.getConnection(url,"test","123456");@b@        //关闭自动提交@b@        conn.setAutoCommit(false);@b@        Statement stmt=conn.createStatement();@b@        //执行一批sql提交操作@b@        stmt.executeUpdate("insert  into  user(1,'张三',32)");@b@        stmt.executeUpdate("insert  into  user('2',李四,23)");@b@        stmt.executeUpdate("update user  set  name='test'  where id=3");@b@        //如不发生异常就提交事务@b@        conn.commit();@b@        stmt.close();@b@        conn.close();  @b@  @b@  }catch(Exception e){ @b@      try{@b@          conn.rollback();//发送异常回滚@b@      }catch(Exception ee){@b@          ee.printStackTrace();@b@      }@b@    @b@  }@b@        @b@}

三、总结

事务控制执行一批SQl整体都被正确执行,已保障整体业务流程数据的完整一致性。对于JDBC事务,具体使用commit和rollback方法执行事务的提交和回滚

java事务代码_关于java中实现JDBC事务控制代码示例相关推荐

  1. java 重用性_提高Java代码重用性的三个方法

    三种修改现有代码提高其可重用性的方法,它们分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型. 措施一:改写类的实例方法 通过类继承实现代码重用不是精确的代码重用技术,因此它并不是 ...

  2. java 小坑_关于Java子父类关系的小坑

    原标题:关于Java子父类关系的小坑 学过JavaSE的都知道java类在初始化的时候,如果存在直接父类,是先初始化父类,然后才初始化子类. 子类拥有父类所有的非私有化成员,非私有的成员不仅仅包括pu ...

  3. OpenCV演示代码以查找图像中的轮廓(附完整代码)

    OpenCV演示代码以查找图像中的轮廓 OpenCV演示代码以查找图像中的轮廓 OpenCV演示代码以查找图像中的轮廓 #include "opencv2/imgcodecs.hpp&quo ...

  4. java初学者指南_企业Java中事务隔离级别的初学者指南

    java初学者指南 介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统 ...

  5. java 锁表后事务提交_关于synchronized锁在Spring事务中进行数据更新同步,仍出现线程安全问题...

    #1 问题描述# 最近有小伙伴在做商品抽奖活动时,在对奖品库存进行扣减,有线程安全的问题,遂加锁synchronized进行同步,但发现加锁后并没有控制住库存线程安全的问题,导致库存仍被超发. 先简单 ...

  6. java short 后缀_自学java的新手问个问题,为什么写个代码中的int能自动转

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 你学一个东西 先学会他的定义 java语法是这样定义的 类型修饰符 变量名 = 值 其中左边是被赋值的 右边是赋值的 类型修饰符有 八种 int bool ...

  7. java short后缀_自学java的新手问个问题,为什么写个代码中的int能自动转

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 你学一个东西 先学会他的定义 java语法是这样定义的 类型修饰符 变量名 = 值 其中左边是被赋值的 右边是赋值的 类型修饰符有 八种 int bool ...

  8. java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...

    有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下. 1.循环输出1到100之间所有能被3或能被4整除的数. package com.hz.loop02; /** ...

  9. java dijkstra算法代码_[转载]Java实现dijkstra算法: 地图中任意起点寻找最佳路径...

    最近在复习java,下学期要用,写这个练手.  技术较粗糙,见谅. 代码里用的是这幅地图,根据实际情况更改,在addNode方法中 这个是运行结果,起点和终点在 运行wrap(String qidia ...

最新文章

  1. 从Storm到Flink:大数据处理的开源系统及编程模型
  2. 查看安装的cuda和cudnn的版本号
  3. C# winform combobox 在绑定数据之后插入一项选择项
  4. 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?
  5. ISCC2020-Web题解
  6. NLog-ASP.NET Core 5入门
  7. 从零开始配置服务器密码机的开发环境
  8. iPhone成交额2秒破亿!京东11.11晚8点战报:5分钟家电成交额破20亿
  9. 配置LANMP环境(9)-- 安装Git与vsftp
  10. MySQL延时更改数据_mysql数据库备份设置延时备份方法(mysql主从配置)
  11. pycharm配置python第三方库_解决pycharm每次新建项目都要重新安装一些第三方库的问题...
  12. 工具箱锁打不开了怎么办_锁芯坏了门打不开怎么办?锁芯拆开的方法是什么?...
  13. 各种数据库的分页查询
  14. 测试用ASP.NET建立一个在线RSS新闻聚合器
  15. 学生干部管理系统的现状分析和可行性分析
  16. 使用element插件点击跳转时报错form-item.vue:315 Uncaught (in promise) TypeErelForm.removeField is not a function
  17. Failed to install ISKernel Files,make sure you have appropriate privileges on this machine
  18. word关闭时卡死_word操作技巧:怎样快速退出正在进行的操作状态
  19. Windows Mobile 进阶系列.第二回.初窥.NET CF类型加载器
  20. 一款强大的网站在线客服聊天系统:whisper搭建教程

热门文章

  1. python开发mes系统_MES系统开发
  2. 【python基础】ValueError: only 2 non-keyword arguments accepte
  3. SourceTree windows版本免注册免登陆使用方法
  4. 非常全的VS Code快捷键
  5. NSIS UI 美化类插件分享
  6. python中列表字典元组之间的区别_python之字典、元组、列表的区别
  7. idea 无效的目标发行版_maven构建异常(无效的目标发行版: 1.8)
  8. maple 2018 窗口关闭提示乱码_iPhone最废柴却无法关闭的俩功能,我终于屏蔽了!...
  9. 三次握手和四次挥手图解_详解 TCP 连接的“三次握手”与“四次挥手”
  10. 测试比java_Java11比Java8快多少,不是测试人员一眼也能看懂