JDBC实验四 JavaBean的应用
更新时间:2023-07-24 07:31:01 阅读量: 实用文档 文档下载
- jdbc实验总结推荐度:
- 相关推荐
广州中医药大学信息技术学院
实 验 报 告
课程名称: 专业班级: 学生学号:
网络数据库编程
计算机科学与技术(2010)级
2010081113
学生姓名: 汪珊 实验名称: 实验成绩:
课程类别:必修 □ 限选 公选□ 其它□
实验四 JavaBean的应用
实验类型:应用性实验 实验日期: [实验目的]
1. 理解组件的概念
2. 理解JavaBean的基本概念和规范 3. 掌握JavaBean的编写 4. 掌握JavaBean的应用 [实验内容]
1. JavaBean的调试环境(参考示例:counter,tax)
1) 正确编写.java代码,并编译成.class文件
2) 在jsp环境(如Tomcat、RESIN等)下调试,如在resin环境中,本
例JavaBean编译后的文件就需要放
resin\doc\WEB-INF\classes\count\counter.class。
2. 根据课本第5章的实例进行学习,代码见共享文件。 3. 用JavaBean组件实现文件上传(参考示例: file) 4. 编写连接数据库的JavaBean(参考示例:student)
5. 把实验三的“留言板”作业中的数据库连接改为用JAVABEAN实现,并增
加附件上传的功能(参考示例: file)。
在下面贴上题4的代码
(以下为理论知识题) 5、什么是软件组件?
组件从一般意义上讲组件是系统中可以明确辨识的构成成分 软件组件则是系统中具有一定意义的相对独立的构成成分
组件式一个不透明的功能实现体,能够被第三方组装,且符合一个组件模型
6、JavaBean 组件的公共特性有哪些?
JavaBean组件的公共特性有属性、方法和事件 属性是JavaBean的组成部分
方法是JavaBean可提供的行为或服务
事件是JavaBean对特定事件发生时所提供的响应
7、使用JavaBean进行数据库连接有什么好处? JavaBean不依赖平台。 可以实现代码的重复利用 易编写、易维护、易使用
可以在任何安装了Java运行环境的平台上使用,而不需要重新编译。 8、在SQL中定义事务的语句有哪些?如何实现JDBC对数据库的事务操作,请举例说明?
BEGIN TRANSACTION 事务名 /*标记一个显式本地事务的起始点*/ COMMIT TRAN 事务名 /*提交事务*/ ROLLBACK TRAN 事务名 /*回滚事务*/ Connection con = null; try {
ds = (DataSource)myContext.lookup("jdbc/oracleServer"); pooledCon = ds.getConnection("scott", "tiger"); pooledCon.setAutoCommit(false);
pooledCon.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
// .. mit(); } catch (Exception ignored)
{ try { pooledCon.rollback(); } catch (SQLException ig) {} } finally { if(pooledCon != null) { pooledCon.setAutoCommit(true); pooledCon.close(); } }
9、自行在网上搜索资料,举例说明如何用程序实现分布式事务?(必要时可以用图片辅助文字说明)
在java中有如下三种事务,
简单的jdbc级的事务
jta - 在ejb环境下,用户得到事务并进行控制
cmp - 完全由容器控制事务,用户通过bean配置文件来定义事务行为
二三种都支持分布式事务,但只支持java环境下的分布式事务。
下面讨论如何在java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用jta.
这里假设使用oracle数据库,使用weblogic部署应用,所要做的是如下几步: 1. 配置
1.1 确认数据库支持分布式事务 - oracle是支持分布式事务的,jdbc驱动也支持分布式事务
1.2 在weblogic里配置datasource
1.2.1. 配置连接池,注意这里应该选择驱动是thin xa而不是thin 1.2.2. 配置数据源,使用前面配好的xa的连接池 2. 程序实现 2.1. 实现自己的xid
import javax.transaction.xa.*; public class myxid implements xid {
protected int formatid; protected byte gtrid[]; protected byte bqual[]; public myxid() { }
public myxid(int formatid, byte gtrid[], byte bqual[]) {
this.formatid = formatid; this.gtrid = gtrid; this.bqual = bqual; }
public int getformatid()
{
return formatid; }
public byte[] getbranchqualifier() {
return bqual; }
public byte[] getglobaltransactionid() {
return gtrid; } }
2.2. 通过jndi找到weblogic中配置好的数据源
public xadatasource getxadatasource() throws exception {
initialcontext ctx = new initialcontext( mgr.getprops()); xadatasource ds = (xadatasource)ctx.lookup("jdbc/xads"); return ds;
}
2.3. 使用xadatasource得到xaconnection,使用xaconnection得到xaresource,基于xaresource进行具体数据访问。如果我们这里lookup多个xadatasource,然后得到多个xaresource,就可以实现多数据源的事务控制。
xadatasource xads; xaconnection xacon; xaresource xares; xid xid; connection con;
statement stmt; int ret;
xads = getxadatasource(); xacon = xads.getxaconnection(); xares = xacon.getxaresource(); con = xacon.getconnection(); stmt = con.createstatement();
xid = new myxid(100, new byte[]{0x01}, new byte[]{0x02}); try {
xares.start(xid, xaresource.tmnoflags);
stmt.executeupdate("insert into test_table values (100)"); xares.end(xid, xaresource.tmsuccess); ret = xares.prepare(xid); if (ret == xaresource.xa_ok) { mit(xid, false); } }
catch (xaexception e) { e.printstacktrace(); } finally { stmt.close(); con.close(); xacon.close(); }
[实验体会]
请在下方写出你对本实验的看法,例如你认为实验难度如何?你能够独立实验吗?如果不能,你认为原因是什么?
1、实验难度: 难( ) 中等( ) 容易( )
2、能否按指定要求,在指定时间内完成所有实验? 能( ) 否( ) 如果不能,不能完成实验有
(作业提交说明:实验完成后,将此文档和相关的JSP文件一并压缩后提交上来,文件名为自己的学号+实验几,如2001000001+实验几.RAR)
正在阅读:
JDBC实验四 JavaBean的应用07-24
24检验科突发事件应急预案05-19
我身边的小雷锋作文02-04
细胞生物学练习题1—6章内容12-30
《语文园地五》教学设计11-15
我做“活雷锋”作文350字06-24
中医药管理局标书07-20
企业员工沉默原因分析及对策研究论文06-03
5高性能混凝土的施工07-20
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- JavaBean
- 实验
- 应用
- JDBC
- 2006年浙江省安装造价员考试题
- 配电变压器在线监测系统终端设计
- 2016年目标管理1 Microsoft PowerPoint 演示文稿(1)
- 长春考研辅导成功学员现身说法 教你打好考研复试这一仗
- 电磁感应现象教学设计
- 试论微课在中学体育教学中的实践
- 1.4.1有理数的乘法(第一课时)
- 国海证券晨会纪要2020年第158期(1970-01-01)
- 高频电子线路复习题
- 高二语文期中试题及答案
- 蛋白质分解和氨基酸代谢
- 英汉语言对比研究-词法对比
- 黑龙江省大庆实验中学2013届高三上学期期末考试政治试题 Word版含答案
- 教育技术学导论试题
- 初中英语八年级(下)期末复习练习卷(20096)
- 63例急性肾损伤相关因素的临床分析
- 六年级语文寒假生活指南 2
- 细胞工程在环境保护方面的应用
- 基于动态对等理论的中文商标翻译
- 慢性阻塞性肺疾病患者自我效能的护理指导