选择显示字体大小

java中数据库事务处理的实现

  摘要 本文介绍在java中进行事务处理的方法,通过实例分别讲述了如何采用javabean、ejb组件实现j2ee应用服务器支持的jdbc事务、jta(java transaction api)事务。

  关键词 javabean,ejb数据库,事务处理,jta

  javabean

  javabean是用java语言编写的与平台无关的组件。它是描述java的软件组件模型,有点类似于microsoft的com组件的概念。在java模型中,通过javabean可以无限扩充java程序的功能,通过javabean的组合可以快速的生成新的应用程序。javabean可以实现代码的重复利用,对于程序的易维护性也有重大的意义。非可视化的javabean,在jsp程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离。javabean在服务器端的应用方面表现出了越来越强的生命力。

  ejb

  ejb技术定义了一组可重用的组件:enterprise javabeans。你可以利用这些组件,像搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个enterprise beans,在加上一些配置参数。最后,这些enterprise beans被配置到一个装了ejb容器的平台上。客户能够通过这些beans的home接口,定位到某个beans,并产生这个beans的一个实例。这样,客户就能够调用beans的应用方法和远程接口。ejb技术简化了用java语言编写的企业应用系统的开发、配置和执行。有三种类型的enterprise beans: session beans、 entity beans和message-driven beans。

  事务处理

  信息是任何企事业单位的重要资产,任何企业部门都包含着信息的流入、流出,任何企业部门都控制着某些信息。同时,信息必须在适当的时机传播给需要的人。而且,信息还需要安全约束,通常根据信息的类型和内容实施访问控制。为了保证数据的安全有效和正确可靠,数据库管理系统(dbms)必须提供统一的数据保护功能。

  事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚(回到最初的系统状态)。事务必须服从iso/iec所制定的acid原则。acid是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。

  在下面我们列举一个使用sql server数据库进行事务处理的例子。主表是一个规章制度信息表(bylaw),主要字段有记录编号、标题、作者、书写日期等。两个子表分别是附件表(bylaw_affix)和文本信息表(bylaw_content)。表结构见图1所示。bylaw表的记录编号与bylaw_affix表的记录编号、bylaw_content表的记录编号是对应的,每次对规章制度信息的操作也就是对这三个表的联合操作。例如要删除规章制度中的一条记录,如果不使用事务,就可能会出现这样的情况:第一个表中成功删除后,数据库突然出现意外状况,而第二、三个表中的操作没有完成,这样,删除操作并没有完成,甚至已经破坏数据库中的数据。要避免这种情况,就应该使用事务,它的作用是:要么三个表都操作成功,要么都失败。换句话说,就是保持数据的一致性。所以,为了确保对数据操作的完整和一致,在程序设计时要充分考虑到事务处理方面的问题。


图1 示例表结构


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范