第4章利用jdbc和jta访问数据库管理全局事务_第1页
第4章利用jdbc和jta访问数据库管理全局事务_第2页
第4章利用jdbc和jta访问数据库管理全局事务_第3页
第4章利用jdbc和jta访问数据库管理全局事务_第4页
第4章利用jdbc和jta访问数据库管理全局事务_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典Java

EE课程段鹏松第4章利用JDBC和JTA访问数据库和管理全局事务掌握WebLogic配置数据源操作掌握JBoss配置数据源操作了解事务和JTA相关知识了解EJB的事务管理方法课程目标目录JDBC和容器管理的数据源事务和JTA事务隔离和传播属性的设置EJB的事务管理事务超时设置概述为了更好地管理数据库连接,实际项目中通常都会考虑使用数据源来管理数据库连接。在基于Spring的轻量级JavaEE企业应用中,通常会选择让Spring容器来管理数据源。JDBC概述JDBC(Java

Data

BaseConnectivity,java数据库连接)是一种用于执行SQL语句的Java

API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。基于JDBC的驱动程序由数据库厂商提供数据库连接池的概念–为了避免频繁地打开、关闭数据库造成的资源浪费。使用WebLogic配置数据源实际操作演示使用WebLogic配置数据源<%//初始化Context,使用InitialContext初始化ContextContext

ctx=newInitialContext();//通过JNDI查找数据源,该JNDI就是部署数据源所指定的JNDIDataSource

ds

=(DataSource)ctx.lookup("firstds");//获取数据库连接Connection

conn

=

ds.getConnection();//获取StatementStatement

stmt

=conn.createStatement();//执行查询,返回ResulteSet对象ResultSet

rs

=

stmt.executeQuery("select

*from

item");while(rs.next()){out.println(rs.getString(1)

+"  "+

rs.getString(2)

+

"<br/>");}rs.close();stmt.close();conn.close();%>使用WebLogic配置数据源测试结果使用JBoss配置数据源实际操作演示使用JBoss配置数据源<%//初始化Context,使用InitialContext初始化ContextContext

ctx=newInitialContext();//JBoss中实际JNDI名字必须在配置的JNDI之前加上java:/前缀DataSource

ds

=(DataSource)ctx.lookup("java:/firstds");//获取数据库连接Connection

conn

=

ds.getConnection();//获取StatementStatement

stmt

=conn.createStatement();//执行查询,返回ResulteSet对象ResultSet

rs

=

stmt.executeQuery("select

*from

item");while(rs.next()){out.println(rs.getString(1)

+"  "+

rs.getString(2)

+

"<br/>");}rs.close();stmt.close();conn.close();%>注意事项Jboss默认并不提供数据库驱动程序,需要手动把驱动程序拷贝到Jboss的server\default\lib路径下。JBoss服务器将会自动加载该路径下的数据库驱动程序。使用JBoss配置数据源测试结果目录JDBC和容器管理的数据源事务和JTA事务隔离和传播属性的设置EJB的事务管理事务超时设置概述事务控制也是Java

EE应用中必须处理的问题,它可以保证一系列数据库操作能够准确完成事务分为局部事务和全局事务(分布式事务)JTA,即Java

Transaction

API,提供了事务划分的标准接口。JTA事务和JDBC事务的区别:JTA事务可以跨连接JDBC仅限于一个连接事务的基本概念事务是由一步或几步数据操作序列组成的逻辑执行单元,这系列操作要么全部完成,要么全部放弃执行。事务的四个特性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durablity)分布式事务处理、XA规范和2PC协议分布式事务:涉及到多个数据库的事务XA规范理论基础即为2PC协议2PC协议2

Phase

CommitWeblogic服务器已经实现了对全局性事务的单阶段优化使用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

orcl1233、页面的errorPage不能为空,否则掩盖住真正的异常。执行结果目录JDBC和容器管理的数据源事务和JTA事务隔离和传播属性的设置EJB的事务管理事务超时设置概述事务控制是保证应用程序底层数据完整性的重要手段,但事务控制对程序性能的影响也是很大的,如果应用程序的事务属性设置的不合适,应用程序的性能将会大大降低。并发访问和隔离根据JDBC规范的定义,事务的隔离设置一共分为5个级别:TRANSACTION_NONETRANSACTION_READ_UNCOMMITTEDTRANSACTION_READ_COMMITTEDTRANSACTION_REPEATBLE_READTRANSACTION_SERIALIZABLE调用Connection接口的setTransactionIsolation()进行设置事务属性RequiredRequiredNewMandatoryNotSupportedSupportsNever通过javax.ejb.TransactionAttributeannotation来设置事务传播属性总表目录JDBC和容器管理的数据源事务和JTA事务隔离和传播属性的设置EJB的事务管理事务超时设置EJB的事务管理容器事务管理(CMT)EJB默认使用的策略对业务方法的编程有限制Bean

事务管理(BMT)优点:简单、方便缺点:不灵活,得自己编写代码实现目录JDBC和容器管理的数据源事务和JTA事务隔离和传播属性的设置EJB的事务管理事务超时设置事务超时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论