关于java事务原理的探讨

关于java事务原理的探讨

ID:24549312

大小:55.50 KB

页数:6页

时间:2018-11-14

关于java事务原理的探讨_第1页
关于java事务原理的探讨_第2页
关于java事务原理的探讨_第3页
关于java事务原理的探讨_第4页
关于java事务原理的探讨_第5页
资源描述:

《关于java事务原理的探讨》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于Java事务原理的探讨一般情况下,J2EE应用服务器支持JDBC事务、JTA(JavaTransactionAPI)事务、EJB容器管理事务。本文将向您详细介绍Java事务的概念、原理、类型及应用。Java事务控制是构建J2EE应用不可缺少的一部分,合理选择应用何种事务对整个应用系统来说至关重要。关键词:Java事务;EJB;事务处理;JTA一、JAVA事务的概念  一般的概念认为:事务仅与数据库相关。  在数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作

2、单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤消整个事务。我们通过提交mit()或是回滚rollback()来结束事务的操作。关于事务操作的方法都位于接口java.sql.Connection中。  Java事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性、一致性、隔离性和持久性的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前

3、的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。  通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。  一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码

4、中。因此,数据库操作的事务习惯上就称为Java事务。二、Java事务的必要性    事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。一个简单例子:比如银行转帐业务,武汉账户A要将自己账户上的800元转到深圳B账户下面,A账户余额首先要减去800元,然后B账户要增加800元。该交易的伪码表示如下:  begintransaction  accountA:=accountA-800  accountB:=accountB+800  mittransaction  假如在中间X络出现

5、了问题,A账户减去800元已经结束,B因为X络中断而操作失败,那么整个业务失败,必须做出控制,要求A账户转帐业务撤销。这才能保证业务的正确性,完成这个操走就需要事务,将A账户资金减少和B账户资金增加方到一个事务里面,要么全部执行成功,要么操作全部撤销,这样就保持了数据的安全性。  事务:所有步骤要么全部完成,要么一个都不做。否则数据完整性将被破坏。因为事务中的所有步骤被看作一个统一的整体,所以事务一般被定义为一个不可分割的工作单元。三、Java事务的类型及差异  Java事务的类型有三种:JDBC事

6、务、JTA(JavaTransactionAPI)事务、容器事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在JTA事务中嵌套JDBC事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用  1、JDBC事务  JDBC事务是用Connection对象控制的。打开一个连接对象Connection时,缺省是auto-mit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。JDBCConnection接口(java.sql.Conne

7、ction)提供了两种事务模式:自动提交和手工提交。java.sql.Connection提供了以下控制事务的方法:  publicvoidsetAutomit(boolean)  publicbooleangetAutomit()  publicvoidmit()  publicvoidrollback()  使用JDBC事务界定时,您可以将多个SQL语句结合到一个事务中。JDBC事务的一个缺点是事务的范围局限于一个数据库连接。一个JDBC事务不能跨越多个数据库。  2、JTA(JavaTrans

8、actionAPI)事务  JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。  JTA允许应用程序执行分布式事务处理——在两个或多个X络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。  如果计划用JTA界定事务,那么就需要有一个实现javax.sql.XADataSource、javax.sql.XAConnection和javax.sql.XAR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。