java什么是事务意思概念

2018/6/19 22:27:00 阅读:744次

java什么是事务意思概念来自简单日记网精选推荐。事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务(transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如sql,c++或java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

java中的事务处理

一般情况下,j2ee应用服务器支持jdbc事务、jta(java transaction api)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在jta事务中嵌套jdbc事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面我们列举两种事务处理方式。

1、javabean中使用jdbc方式进行事务处理

在jdbc中怎样将多个sql语句组合成一个事务呢?在jdbc中,打开一个连接对象connection时,缺省是auto-commit模式,每个sql语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个sql语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,sql语句不会得到事务确认。在最近一次commit()方法调用之后的所有sql会在方法commit()调用时得到确认。

public int delete(int sid) { dbc = new databaseconnection(); connection con = dbc.getconnection(); try {  con.setautocommit(false);// 更改jdbc事务的默认提交方式  dbc.executeupdate("delete from bylaw where id=" + sid);  dbc.executeupdate("delete from bylaw _content where id=" + sid);  dbc.executeupdate("delete from bylaw _affix where bylawid=" + sid);  con.commit();//提交jdbc事务  con.setautocommit(true);// 恢复jdbc事务的默认提交方式  dbc.close();  return 1; } catch (exception exc) {  con.rollback();//回滚jdbc事务  exc.printstacktrace();  dbc.close();  return -1; }}  2、sessionbean中的jta事务

jta 是事务服务的 j2ee 解决方案。本质上,它是描述事务接口(比如 usertransaction 接口,开发人员直接使用该接口或者通过 j2ee 容器使用该接口来确保业务逻辑能够可靠地运行)的 j2ee 模型的一部分。jta 具有的三个主要的接口分别是 usertransaction 接口、transactionmanager 接口和 transaction 接口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如 suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。例如,usertransaction 能够执行事务划分和基本的事务操作,而 transactionmanager 能够执行上下文管理。

应用程序可以调用usertransaction.begin()方法开始一个事务,该事务与应用程序正在其中运行的当前线程相关联。底层的事务管理器实际处理线程与事务之间的关联。usertransaction.commit()方法终止与当前线程关联的事务。usertransaction.rollback()方法将放弃与当前线程关联的当前事务。

public int delete(int sid) { databaseconnection dbc = null; dbc = new databaseconnection(); dbc.getconnection(); usertransaction transaction = sessioncontext.getusertransaction();//获得jta事务 try {  transaction.begin(); //开始jta事务  dbc.executeupdate("delete from bylaw where id=" + sid);  dbc.executeupdate("delete from bylaw _content where id=" + sid);  dbc.executeupdate("delete from bylaw _affix where bylawid=" + sid);  transaction.commit(); //提交jta事务  dbc.close();  return 1; } catch (exception exc) {  try {   transaction.rollback();//jta事务回滚  }  catch (exception ex) {   //jta事务回滚出错处理   ex.printstacktrace();  }  exc.printstacktrace();  dbc.close();  return -1; }}

java简述什么是事务_java什么是事务意思概念相关推荐

  1. java中如何开启事务_Java中开启事务操做数据库

    1.事务的四大特性(ACID)html 一.原子性(atomicity):组成事务的语句造成了一个逻辑单元,不能只执行一部分:数据库 二.一致性(consistency):在事务处理执行先后,数据库与 ...

  2. java简述对象的组合_Java程序运行和对象创建过程简述

    Java中一个对象创建分为两个步骤: 加载类,创建对象. 加载类是将所写的程序.java文件编译生成的.class文件加载到内存中,保证了对象创建的预置环境.类加载完毕后才可以创建该类的对象. 第一步 ...

  3. java 事务 数据库 事务_Java数据库编程——事务

    我们可以将一组语句构建成一个事务(transaction).当所有语句都顺利执行之后,事务可以提交(commit).否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有任何语句被执行过一样. ...

  4. java简述什么是标识符_Java概述(标识符、变量、基本数据类型)

    Java语言的跨平台原理 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性.该特性是由JVM实现的,我们编 ...

  5. java禁止数据库写入事务_Java -- JDBC 事务处理, 事务的隔离级别 脏读 不可重复读 等......

    1. 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令 •start transaction开启事务 •Rollback 回滚事务 •Commit 提 ...

  6. java 分布式事务_Java核心知识 Spring原理十五 JPA 原理

    1. 事务 事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity ).一致性 ( Consistency ).隔离性 ( Isolation ) 和持久性 ( Dur ...

  7. java 事务_Java中事务总结详解(精华)

    1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...

  8. java service层 事务_Java高并发秒时啊API之Service层1

    ---2-1 使用Spring托管Service依赖理论---------------------------- spring ioc优势(工厂模式): 1.对象创建统一托管 2.规范的生命周期管理 ...

  9. Java jta 原理_Java的分布式事务(JTA和XA)

    Java的分布式事务(JTA和XA) Java的分布式事务(JTA和XA) 关于JTA事务和XA事务的介绍 何为分布式事务 一个事务包含多个操作,多个操作操作了多个数据源,这样的事务称为分布式事务. ...

  10. java中mvc事务_java核心技术第五篇之事务和MVC模式

    第一部分:事务 1.事务的简介: 1.1 在一组操作中(比如增加操作,修改操作),只有增加和修改操作都成功之后,这两个操作才能真正的成功. ,如果这两个操作中,有一个失败了,这两个操作都失败了. 1. ...

最新文章

  1. iOS开发--面试总结(二)
  2. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
  3. Win7和VS2013上使用Intel的TBB
  4. LeetCode 1062. 最长重复子串(二分查找)
  5. python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例
  6. HDU1799 循环多少次?【打表】
  7. java语言程序设计(梁勇)
  8. 视频教程-SAP S4 HANA财务模块入门到精通-ERP
  9. 中控考勤机重置考勤机密码方法
  10. IDO已经OUT ?3分钟了解NFT的新玩法INO
  11. c语言打印变量高低字节,亲自动手——C语言变量所占字节,及自动类型转换
  12. 对于bugku中杂项啊哒题的尝试解法
  13. 华为8c系统语言切换,华为荣耀畅玩8C双清教程_怎么清理缓存和恢复出厂设置
  14. 【双足轮机器人】Ascento技术详解--(5)实验--(7)总结【翻译】
  15. 拯救者R7000系列(AMD) win10+ubuntu20双系统安装笔记,解决显卡、亮度控制、触控板问题
  16. 仿今日头条后台管理系统(三)
  17. 利用python flask框架搭建算法接口遇到的错误汇总
  18. 第四章 OAuth2.0规范(史上最详细解释)——获得授权
  19. Centos在NAT模式下的设置
  20. OSChina 周六乱弹 —— 女友是啥子哟?生命的最大负载?

热门文章

  1. 青蛙跳台阶问题(超详解)
  2. matlab凑数求和,excel自动凑数求和 使用规划求解来解决excel自动凑数求和的方法...
  3. CentOS7修改Locale为zh_CN.UTF-8
  4. python 学生成绩统计
  5. [zt]师太,你就从了老衲吧(完整版本)
  6. VS2010 C++单元测试之gtest与OpenCppCoverage实践
  7. 2022-4-23基于单片机的酒驾检测报警系统(MQ3酒精传感器)(风吹摇铃 奔赴星海)
  8. d3dx9_42.dll缺少
  9. 名词用作动词举例_[名词的活用] 名词的活用例子
  10. C++ 判断某个年份的生肖