
利用JDBC和JTA访问数据库和管理全局事务.pptx
29页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,经典,Java EE,课程,段鹏松,第,4,章,利用,JDBC,和,JTA,访问数据库和管理全局事务,掌握,WebLogic,配置数据源操作,掌握,JBoss,配置数据源操作,了解事务和,JTA,相关知识,了解,EJB,的事务管理方法,课程目标,目 录,JDBC,和容器管理的数据源,事务和,JTA,事务隔离和传播属性的设置,EJB,的事务管理,事务超时设置,概述,为了更好地管理数据库连接,实际项目中通常都会考虑使用,数据源,来管理数据库连接在基于,Spring,的轻量级,Java,EE,企业应用中,通常会选择让,Spring,容器来管理数据源JDBC,概述,JDBC,(,Java Data Base Connectivity,java,数据库连接)是一种用于执行,SQL,语句的,Java API,,可以为多种关系数据库提供统一访问,它由一组用,Java,语言编写的类和接口组成基于,JDBC,的驱动程序由数据库厂商提供,数据库连接池的概念,为了避免频繁地打开、关闭数据库造成的资源浪费使用,WebLogic,配置数据源,实际操作演示,使用,WebLogic,配置数据源,使用,WebLogic,配置数据源,测试结果,使用,JBoss,配置数据源,实际操作演示,使用,JBoss,配置数据源,注意事项,Jboss,默认并不提供数据库驱动程序,需要手动把驱动程序拷贝到,Jboss,的,serverdefaultlib,路径下。
JBoss,服务器将会自动加载该路径下的数据库驱动程序使用,JBoss,配置数据源,测试结果,目 录,JDBC,和容器管理的数据源,事务和,JTA,事务隔离和传播属性的设置,EJB,的事务管理,事务超时设置,概述,事务控制也是,Java EE,应用中必须处理的问题,它可以保证一系列数据库操作能够准确完成,事务分为局部事务和全局事务(分布式事务),JTA,,即,Java Transaction API,,提供了事务划分的标准接口JTA,事务和,JDBC,事务的区别:,JTA,事务可以跨连接,JDBC,仅限于一个连接,事务的基本概念,事务是由一步或几步数据操作序列组成的逻辑执行单元,这系列操作要么全部完成,要么全部放弃执行事务的四个特性,原子性(,A,tomicity,),一致性(,C,onsistency,),隔离性(,I,solation,),持续性(,D,urablity,),分布式事务处理、,XA,规范和,2PC,协议,分布式事务:涉及到多个数据库的事务,XA,规范,理论基础即为,2PC,协议,2PC,协议,2 Phase Commit,Weblogic,服务器已经实现了对全局性事务的单阶段优化,使用,JTA,全局事务保证多数据库的一致性,JTA,事务由,Java EE,事务管理器控制,它可以保证多个数据库更新的一致性,通过,JTA,即可实现全局事务控制,在,WebLogic,中使用,JTA,实际操作演示,在,JBoss,中使用,JTA,实际操作演示,操作注意,1,、用,scott,用户访问,2,、,oracle,每个数据库都 有,scott,用户,需要先解锁,更改密码;,scott,用户名下面默认有一个,dept,数据表,不用再建立。
解锁,alter user scott account unlock,改密,alter user scott identified by orcl123,3,、页面的,errorPage,不能为空,否则掩盖住真正的异常执行结果,目 录,JDBC,和容器管理的数据源,事务和,JTA,事务隔离和传播属性的设置,EJB,的事务管理,事务超时设置,概述,事务控制是保证应用程序底层数据完整性的重要手段,但事务控制对程序性能的影响也是很大的,如果应用程序的事务属性设置的不合适,应用程序的性能将会大大降低并发访问和隔离,根据,JDBC,规范的定义,事务的隔离设置一共分为,5,个级别:,TRANSACTION_NONE,TRANSACTION_READ_UNCOMMITTED,TRANSACTION_READ_COMMITTED,TRANSACTION_REPEATBLE_READ,TRANSACTION_SERIALIZABLE,调用,Connection,接口的,setTransactionIsolation,(),进行设置,事务属性,Required,RequiredNew,Mandatory,NotSupported,Supports,Never,通过,javax.ejb.TransactionAttribute annotation,来设置,事务传播属性总表,目 录,JDBC,和容器管理的数据源,事务和,JTA,事务隔离和传播属性的设置,EJB,的事务管理,事务超时设置,EJB,的事务管理,容器事务管理,(CMT),EJB,默认,使用的策略,对业务方法的编程 有限制,Bean,事务管理,(BMT),优点:简单、方便,缺点:不灵活,得自己编写代码实现,目 录,JDBC,和容器管理的数据源,事务和,JTA,事务隔离和传播属性的设置,EJB,的事务管理,事务超时设置,事务超时设置,对于容器托管事务,如果应用事务一直不结束(既不提交,也不回滚),那就会导致相关数据一直处于锁定状态,从而引起性能下降。
在,Weblogic,中为数据源设置超时时长,实际操作演示,在,JBoss,中为数据源设置超时时长,实际操作演示,本章小结,学习了数据源的概念,学习了在不同服务器中操作数据库的方法,学习了事务的概念,及如何控制事务,。












