网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  Oracle数据库中基本动态Web开发和应用     
  文章作者:未知  文章来源:未知  
  查看:186次  录入:管理员--2007-04-11  
 

1、用Oracle WebServer构建Web数据库应用

Oracle 8服务器是一个完善的信息管理环境。它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。它能够支持C/S结构进行分布式处理和Web计算等。利用其服务器选件之一的WebServer,可以提供实现Web数据库应用的强大功能。

一般来说,实现Web数据库应用可以在WebServer端提供CGI/API等中间件来连接WebServer 和DB Server,也可以让用户通过Web浏览器把相关应用下载到客户端运行,在客户端直接访问数据库,如Java Applet,Active X,Plug-in等。本文主要介绍利用Oracle 8 提供的PL/SQL和其功能强大的内置程序包来编写程序以实现动态的Web应用。属于利用中间件开发的一种。中间件负责管理WebServer和DBServer之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面再通过WebServer返回给用户浏览器。其一般结构如下所示:

Web浏览器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server

2、PL/SQL

Oracle从其版本6开始支持一种过程处理语言PL/SQL,并将其作为所有Oracle工具的标准编程语言,从而所有的过程组件在Oracle服务器产品中都能实现。用PL/SQL可以实现下述重要功能:

存储过程,即存放在Oracle数据库中的程序(或代码段)并为你的机构完成特定的重要工作;

数据库触发器,即存放在数据库中的代码,可由应用所产生的事件触发;

程序包,即把多个过程组合在一起当作单个程序单元的代码存放在数据库中。

其中内置程序包是预先生成的,存储在数据库中,且能在PL/SQL代码块中调用的根据需求可以传递参数的程序。它可以完成把结果直接输出到终端窗口;直接从操作系统文件读写数据;执行动态的SQL等多项功能。常用的如HTP,HTF,OWA-UTIL等。下面将通过一个动态的网上查询分数的实例来说明其在动态Web中的应用。

3、利用WebServer和PL/SQL开发动态Web实例

现有一考生成绩库需在网上向用户提供查询成绩的功能。首先可考虑利用HTP程序包根据用户输入的考生号到数据库中查询相应的信息,返回一个网页。代码如下:

Create or replace procedure score_into_webpage (code_in in number)
As
cursor score_cursor is
select code,name,score
from student
where code = code_in;
Begin
Htp.htmlopen;
Htp.headopen;
Htp.title ('Student's score information');
Htp.headclose;
Htp.bodyopen (cattributes=>'bgcolor = "#80800"');
Htp.tableopen(border');
Htp.tablecaption ('Score Information','center');
Htp.tablerowopen;
Htp.tableheader (' Student Code');
Htp.tableheader (' Student Name');
Htp.tableheader (' Student Score');
--固定地显示页标题、标题、表头等信息,每次调用此页时显示的信息
--是相同的
Htp.tablerowclose;
For score_rec in score_cur
Loop
--利用游标的For循环为游标在网页中产生一个数据行
htp.tablerowopen;
htp.tabledata (score_rec.code);
htp.tabledata (score_rec.name);
htp.tabledata (score_rec.score);
htp.tablerowclose;
Endloop;
Htp.tableclose;
Htp.bodyclose;
Htp.htmlclose;
End;

通过以上代码,我们有了一个基本的用数据库中的数据动态的生成一个网页的方法,下面将建立一个简单的表单。在表单中调用上述程序和接受用户输入的考生号码,从而在客户端向用户动态地显示从数据库中查询的信息。

Create or replace procedure ScoreForm
As
Begin
Htp.headopen;
Htp.title ('Code Entry Form');
Htp.headclose;
Htp.bodyopen;
Htp.header (2,'Score Information Code Form');
Htp.p ('
');
Htp.formopen ('Score_into_webpage',cmethod=>'GET');
--打开ScoreForm表单。缺省情况下Score_into_webpage PL/SQL过程用GET
--方法调用。GET方法在URL里显示传递的参数。
Htp.tableopen ('border');
Htp.tablerowopen;
Htp.tabledata ('Enter Student Code');
Htp.tabledata (htf.formtext ('code_in',5,5));
--用一个文本框提示用户输入考号。文本框的名字必须与调用过程里的输入
--参数相同。
Htp.tablerowclose;
Htp.tablerowopen;
Htp.tablerowclose;
Htp.tablerowopen;
Htp.tabledata (htf.formSubmit);
Htp.tabledata (htf.formReset);
Htp.tablerowclose;
Htp.formclose;
Htp.bodyclose;
Htp.htmlclose;
End;

上述过程在客户端被调用后产生的HTML即可显示一动态表单接受用户输入的考号,然后传递给调用的过程score_into_webpage,从而到Oracle DBServer中查询出所需的数据,再通过该过程动态生成的HTML在Web浏览器中显示出来。

4、 结束语

作为一个大型数据库服务器,Oracle提供了一个面向网络的开发工具、应用服务器和数据库服务器的综合平台。本文利用其标准PL/SQL和内置程序包并结合WebServer讨论了基本的动态Web的开发和应用。

 
 
上一篇: 清除Oracle中无用索引 改善DML性能    下一篇: Oracle分层管理器的技术原理及应用
  相关文档
oracle 数据库唯一约束中的null的处理 09-05
巧用数据库归档技术解决性能下降问题 04-14
讲解oracle数据库自动增长列的实现过程 05-29
指定一个where条件来有条件地导出记录 04-03
修改"oracle"数据库的进程数及会话数 02-01
解析:MIS系统实例中Oracle的安全策略 09-01
轻松掌握删除oracle 10g垃圾表的好方法 11-21
细化解析如何共享Oracle数据库身份空间 09-01
数据库中判断一个字符串内是否含有中文 05-06
教你轻松掌握如何用toad或oem管理job 02-28
oracle 9i和10g安装后的基本环境与服务 (1) 04-30
Oracle智能代理与OMS的问题解答 05-27
数据字典表truncate掉将导致数据库不可用 05-28
带你轻松掌握行分链与行迁移的相关概念 03-17
如何才能解决job的interval输入参数过长 03-24
实例讲解oracle数据库无法启动的解决方法 01-28
oracle新手最常碰到的6个错误及解决方案 10-10
逐步讲解 Oracle数据库碎片如何整理 05-13
教你轻松掌握Oracle与SQL Server的区别 09-01
利用Oracle系统账户默认口令提升权限 04-23
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息