1、 西 南 交 通 大 学 毕业设计(论文) 远程知识培训系统的分析与设计 西南交通大学本科毕业设计(论文) 第X页 摘 要 在网络技术逐渐渗入社会生活各个层面的今天,传统的知识培训方式也面临着变革。基于网络的知识培训系统是传统教育的延伸,加上数据库技术的利用,将大大简化了知识培训的过程。因此远程知识培训系统已成为当前教育软件设计的主要领域之一,而Ja
2、vaWeb技术是实现这一应用的主要方法。 本系统基于Struts框架和Oracle的远程知识培训系统是综合应用多媒体、数据库等多种技术构建的现代远程知识培训模式。本文从知识培训的实际需求出发,研究了知识培训系统模型,并详细分析了知识培训支撑平台应具备的各种主要功能。在此基础上,对系统的功能结构进行分解和提炼,完成了系统模块设计和数据库结构设计。学生和教师、管理员可以通过用户名、密码进行登陆,学生可以查看个人信息、教师信息、查看课程及作业和考试成绩,老师可以添加作业,考试及提交作业和考试成绩,并通过考评模块与学生进行交流。本系统除了一般知识培训系统具备的师生管理、班级管理、课程管理、考试管理、
3、作业管理等功能外,还增加了公告模块、班级相册、家长意见,使整个系统的功能更加完善。 本文第1章为绪论,主要对本系统的开发背景及国内外研究现状进行了分析,并提出了本文的主要设计内容及目标;第2章主要介绍了开发此系统需要的技术支持,并说明了系统的开发环境等硬件条件;第3章介绍了系统的需求及概要设计;第4章 完成了数据库的设计,包括表的详细信息;第5章对系统的详细设计,包括了对各个功能模块的实现流程的介绍;第6章为对系统的测试,并介绍了一些系统测试的情况。 关键词: 知识培训系统;B/S结构;Struts;JSP Abstract
4、Today,network technology has been utilized in every aspects of social life. The traditional knowledge of training is also facing the challenge of being replaced. Network-based knowledge of training system is an extension of traditional way of examinations which can greatly simplify the traditional e
5、xamination process with the use of database technology. Therefore long-distance knowledge of training system system has now become a hotspot in educational software design areas. JavaWeb technology is the main method to carry out this application. Long-distance Knowledge of Training System based on
6、 the Struts and Oracle is a modern education mode which integrates multimedia application with database. This thesis starts from the actual demand for the knowledge of training, combined with a research of the knowledge of training system model, besides, it offers a detailed analysis of the main fun
7、ction the supporting platform should have. On this basis, the system structure is refined and decomposed to finish further design of system modules and database.Students and teachers ,administrators can log on to this system through the user name and password. the student can view the individual inf
8、ormation,teacher information,check course and school assignment and examination results,the teacher being able to add school assignment,examination and submitting school assignment and examination results,teacher communicate with student by the examination comments module .Apart from the basic funct
9、ions such as the teachers and the students management, class management, the course management,examination manage,school assignment management, this system also contains of announcement module,the class photo album, parents opinion. These additional functions make this system more perfect. The fir
10、st chapter of this thesis is an introduction of the main background of developing the system and status analysis of domestic research and those aboard. Chapter 1 also puts forward the main designing contents and objectives of this thesis; Chapter 2 introduces the technical support required to develo
11、p this system, and the hardware requirements; Chapter 3 is devoted to the needs of the system and outline design; Chapter 4 completes the database design, including detailed information of tables; Chapter 5 conveys the detailed design of the system, including introduction of the process how every mo
12、dule implements; Chapter 6 contains a brief report in testing the system. key words:Knowledge of Training System; B/S Structure; Struts; JSP 目 录 摘 要 VI Abstract VII 第1章 绪论 1 1.1 远程知识培训系统的背景 1 1.2 远程知识培训系统国内外研究现状 1 1.3 本课题研究的内容 2 1.4 采用技术及解决办法 2 1.5 远程知识培训系统的意义 2 第2章 系统技术支持和系统配置 4
13、 2.1 MVC模式: 4 2.1.1 MVC模式概述 4 2.1.2 MVC模式的优点 4 2.2 Struts 5 2.2.1 Struts介绍 5 2.3 业务逻辑层 6 2.3.1 B/S多层体系结构 6 2.3.2 BO的概念与应用 7 2.4 数据连接池 8 2.4.1 数据连接池介绍 8 2.4.2 连接池技术的优点 8 2.5 DAO:数据访问对象 8 2.5.1 DAO介绍 8 2.6 ORACLE 9 2.6.1 ORACLE介绍 9 2.6.2 两个数据库的比较 9 2.6.3 PL/SQL的优点 10 2.7 JSP 10 2.7.1
14、 JSP介绍 10 2.8系统运行环境 11 2.8.1设备及分布 11 2.8.2支撑软件 12 第3章 需求分析和设计 13 3.1远程知识培训系统的一般需求分析 13 3.1.1 系统管理员的需求分析 13 3.1.2 学生的需求分析 13 3.1.3 老师的需求分析 13 3.2系统可行性分析 13 3.2.1 技术可行性 13 3.2.2 经济可行性 14 3.2.3 使用可行性 14 3.2.4 法律可行性 14 3.3 系统功能模块设计 14 3.3.1用户登录 14 3.3.2师生管理 14 3.3.3课程管理 15 3.3.4班级信息 15
15、 3.3.5通用设置 15 3.3.6角色管理 15 第4章 数据库设计 17 4.1用户权限模块设计 17 4.1.1用户权限模块数据库表 17 4.2师生管理模块设计 18 4.2.1师生管理模块数据库表 18 4.3 课程管理模块设计 19 4.3.1课程管理模块数据库表 19 4.4班级信息模块设计 22 4.4.1班级信息模块数据库表 22 4.5通用设置模块设计 25 4.5.1通用设置模块数据库表 25 4.6 配置数据库连接池 27 第5章 模块编码设计 28 5.1 commons工具包 28 5.1.1 Servlet类包 28 5.1.
16、2 filter类包 28 5.1.3 pag类包 29 5.1.4 utils类包 29 5.2 登录模块 30 5.2.1登录模块流程 31 5.2.2表现层 31 5.3 师生管理模块 33 5.3.1学生管理子模块 33 5.3.2教师管理子模块 34 5.3.3员工管理子模块 35 5.4课程管理模块 37 5.4.1作业管理子模块 37 5.4.2考试管理子模块 38 5.4.3考评管理子模块 39 5.4.4科目管理子模块 40 5.5 班级信息模块 41 5.5.1班级管理子模块 41 5.5.2班级相册子模块 42 5.5.3班级类型管理子
17、模块 43 5.6 通用设置模块 44 5.6.1公告管理子模块 44 5.6.2家长意见管理子模块 45 5.7 更多功能模块 46 5.7.1角色管理子模块 46 第6章 系统测试 47 6.1页面测试 47 6.2功能测试 47 结 论 48 致 谢 49 参考文献 50 西南交通大学本科毕业设计(论文) 第50页 第1章 绪论 1.1 远程知识培训系统的背景 当今世界,科学技术突飞猛进,知识经济日渐成熟,国力竞争日趋激烈
18、进入数字化,信息化的二十一世纪,人们对知识培训的需求日益增加。远程知识培训作为一种新的培训模式,将最大限度利用现有的教育资源。是实现教育的大众化,现代化,终身化和国际化的新型知识培训形式和必然途径。 信息技术与教育的整合对知识发展和积累将产生深远的影响,随着科学技术的进步和社会的变革,特别是以计算机为中心的信息技术在教学中的广泛应用,使知识培训本身从目的到内容和形式等都发生重大变化,教师也不再像过去那样直接以知识的权威者身份出现,而是在激发学生的学习动机,引导他们精心设计学习环境的过程中进行探索,构建知识体系,提高分析问题,解决问题的能力。 在传统教学中,教师是知识的传授者,是学生获得知
19、识的最重要的源泉。然而在现代知识教学中,教师不再是单一的,甚至也不是最重要的信息源,电视,书刊的传播,特别是多媒体教学系统以及计算机网络教学系统的发展,学生可从多条途径来获得更多更丰富的信息。在获得信息的过程中,教师的主要任务不是直接提供知识,而是引导学生进行学习探索,让学生获得自己获取信息的能力。而远程知识培训正提供了这样一个平台,使之打破传统的教学模式,而构建适应信息社会的新型教学模式。 远程教育是教育体系发展过程中的一次重要变革,它突破了传统教育制度和模式的束缚,使人们可以轻而易举地获取知识,为人们创造一个更好的学习方式。这种模式使得人人都有可能学习。 1.2 远程知识培训系统国内外
20、研究现状 当代教育的发展趋势是构建一个合作,开放,广泛联系个体与社会的社会化大系统,而远程知识培训正是其最好的实践,必将成为未来教育发展的方向。如美国每年用于远程教育的开支达到100-200亿美元,远程教育开设的学历,学位课程基本上覆盖了美国高等学校的所有学科和专业。英国2000年就宣布将建立新型网上电子大学,力争在全球教育市场的激烈竞争中抢得先机。而我过从1999年教育部设立批准清华大学等4所高校开展现代远程教育试点至今,已有67所普通高等学校设立了68个网络教育机构(其中,北京大学的网络教育学院和北京大学医学部网络教育学院为两个独立设置的机构,网络教育的学习者已达130万,网络教育正在成
21、为最重要的教育模式之一。 而远程知识培训正是远程教育的一个体现,世界范围内的网络课程建设已取得了显著的成绩。麻省理工学院(MIT)2001年启动的OCW项目(MIT’s OpenCourse Ware)计划用十年的时间把几乎所有的课程放置到互联网上供全世界的人们免费学习。我国教育部则计划用五年(2003-2007年)建设15000门国家精品课程,利用现代化的教育信息技术手段将精品课程的相关内容上网并免费开放,以实现优质教学资源共享。 基于这样的背景下,在学校现有的良好的网络条件下,开展知识培训系统的开发,具有重要的理论意义和实践价值。 1.3 本课题研究的内容 本系统基于J2E
22、E/Struts框架和Oracle的远程知识培训系统是综合应用互联网、数据库等多种技术构建的现代远程教学模式。本文从知识培训的实际需求出发,研究了知识培训系统的,并详细分析了知识培训系统平台应具备的各种主要功能。在此基础上,对系统的功能结构进行分析,完成了系统设计和数据库结构设计。知识培训是远程教学中的一种应用,学生,老师,管理员可以通过用户名、密码进行登录,登陆后管理员有添加,删除,修改等权限,师生模块中,可以对学生,教师,员工的信息进行管理。课程管理模块中,可以对作业,考试,考评,科目等模块进行管理和设置。在班级信息模块中,可以对班级进行管理,还有特殊的班级相册以及对班级类型的管理,在通用
23、模块中有实用的公告模块和家长意见,方便大家交流。 1.4 采用技术及解决办法 本系统要求实现知识培训的各项基本功能,从安全性和易维护性考虑,选择了Web实现技术。简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问本系统以及对系统进行远程维护。 服务器端程序的实现技术也很多,本人选用的是现在比较流行的Struts+Spring架构,它是基于MVC模型上的,它集成了JSP、Servlet和JavaBean, 使业务逻辑从JSP页面分离出来,JSP文件就完全成为一个显示数据的层。使页面更加清楚明了。并且Struts架构可以支持国际化,Struts根据本地语言的不同可以自动选择资
24、源文件,使用户计算机自动的显示相应的语言,但是由于时间紧的原因,本系统还未实现国际化。后台数据库也有很多种,本系统选择的是Oracle数据库,Oracle是企业级应用的大型数据库,它具有很高的稳定性和高效性,非常适合做大型的系统。 1.5 远程知识培训系统的意义 众所周知,当今社会是一个知识空前繁荣的社会,信息以爆炸形式在递增。学习将成为伴随人的一生的不间断的活动,成为发展的基础。因此,终身学习和终身教育的概念被越来越多的人所接受。美国人因此,终身学习和终身教育的概念被越来越多的人所接受。美国人杜拉克说:“对学习者来说,传统的学校学习方式也不适合他们,他们不可能经常抛下自己的工作和家庭回学
25、校集中学习。他们需要更方便、更灵活的学习方式。”而远程知识培训就提供了这样的好机会。 远程知识培训不受时间、空间和地域的限制,通过网络能把学校扩展到办公室、家庭甚至全社会的每一个角落,工作与学习相融合。 远程知识培训的环境下的教育对象也扩大了,远程教育的资源是开放的,并不局限于年轻的在校者,社会上不同层次、不同年龄的人都可以进行学习。 网络本身是信息时代得以产生和发展的基石,基于网络的远程知识培养出来的人才应该是至少有三个方面的强项。 1.具有比较强的信息获知和选择的能力。而这恰恰是现代社会或信息社会中非常重要的知识和技能。网络远程教育的特点正是培养了学生的这样一种能力。 2.具有比
26、较强的网络能力。有人说,网络是一种虚拟的空间。其实,我认为,网络在现代社会中是两种现实的生存空间。在《学习——财富隐藏其中》这本书中所指出的学会生存,在现代社会中就应该包括学会在网络空间中生存,学习、做事、合作等。因此,比较强的网络能力也就意味着具有比较强的现实生活的能力。 3.具有比较强的自我建构能力。包括意义的建构、新思想的建构,新知识的建构等等。因为,恰恰在网络中,学生所得到的信息和各种知识从某种意义上说,具有一种所谓的“并贴画”效应,来自各个方面的不同的知识和信息往往非常集中和高频率地结合在一起。学生需要通过这些知识和信息的整合,发现和获得其中的价值和意义,并建立新的意义。 因此,
27、新型人才的培养单靠传统教育是不行的,至少要和网络远程教育结合起来,扬长避短,培养出信息社会需要的人才。 第2章 系统技术支持和系统配置 2.1 MVC模式: 2.1.1 MVC模式概述 MVC(Model-View-Controller,即模型层-视图层-控制层)是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成3个核心:模型层、视图层和控制层,他们分别担负不同的任务,图2.1中给出了这几个模块各自的功能以及它们的相互关系。 1.视图层 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能够接受
28、用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。 2.模型层 模型层是应用程序的主体部分。模型层表示业务数据和业务逻辑。一个模型层能为多个视图提供数据。由于同一个模型层可以被多个视图重用,所以提高了应用的可重用性。 3.控制层 控制层接受用户输入并调用模型和视图去完成用户的需求。当WEB用户单击WEB页面中的“提交”按钮来发送HTML表单时,控制层接受请求并调用相应的模块组件去处理请求,然后调用相应的视图来显示模型返回的数据。 4.MVC处理过程 首先,控制层接受用户的请求
29、并决定应该调用哪个模块来进行处理:其次,模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制层调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户[3] [7]。 2.1.2 MVC模式的优点 在最初的JSP页面中,像数据库查询语句这样的数据层代码和像HTML这样的表示层代码是混在一起的。经验比较丰富的开发者会将数据从表示层分离出来,但这通常不是很容易做到的,它需要精心地设计和不断地尝试。MVC从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。 首先,多个视图能共享一个模型。如今,同一个WEB应用程序会提供很多多种用
30、户界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把他们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。 其次,模型是自包含的,与控制层和视图保持相对独立,所以可以方便地改变应用程序的数据层和业务规则。由于MVC的三个模式相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。 最后,控制层提高了应用程序的灵活性和可配置性。控制层可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段,然后选择适当的视图将处理结果显示给用户[14]。 2.2 Struts
31、 2.2.1 Struts介绍 Struts产品是Apache软件基金下的Jakarta项目的一部分,它是一种具体实现MVC的程序框架,它采用了Servlet和JSP技术,使用简化了的MVC模式开发过程,它把Servlet和JSP以及自定义标签等元素整合到一个统一的框架中,当开发者利用其进行开发时,就没有必要再自己编写全套的MVC框架代码了,从而大大缩短了应用开发周期。正是由于Struts能充分满足应用开发的需求、简单应用、稳定可靠,因此Struts已成为Web应用框架事实上的标准。 1.Struts的优点 Struts是建立在MVC这种公认的 良好模型之上的,在M,V和C上都有涉及,
32、但它主要是提供了一个好的控制器和一套定制的标签库,也就是说struts的着力点在C和V上.因此,struts天生就具有MVC所带来的一系列优点,例如:结构层次分明,具有高度的可重用性,增加了程序的健壮性和可伸缩性.另外,使用struts便于进行开发和设计的分工,并提供了集中统一的权限控制,校验,国际化和日志等。 它是一个开源项目,得到了很多程序大师和高手的持续呵护,并且已经经历了实战的检验,使其功能越来越强大,体系也日益完善。 对其他技术和框架显示出很好的融合性.例如,它已经和titles 融为一体。 Struts是一个轻量级的技术产品,其中只有几个类和配置文件需要开发者去了解。 允许
33、为每个国家配置不同的信息资源,不同语言的使用者可以工作在其自己的信息资源版本上.添加一个新语言的支持仅需要简单添加一个资源文件即可。 (1).首先,客户端进行相应的请求,Struts框架的中心控制器(叫做ActionServlet的Serlvet类,或者是用户自定义的ActionSerlvet类的子类)截获到客户请求。 (2).中心控制起ActionSerlvet根据在struts-config.xml文件中配置的映射信息将客户传递的数据填入相应的ActionForm组件对象,并对数据进行合理性校验。如果在配置文件中没有发现相应的映射信息将返回错误提示。 (3).如果ActionForm
34、校验的数据不合理,将返回错误提示,否则ActionSerlvet把ActionForm对象传递给Action组件对象。 (4).Action组件对象提取ActionForm组件对象中所包含的请求数据,必要时调用封装了业务逻辑的模型组件进行业务逻辑处理。 (5).Action对象根据模型组件处理的结果将相应的ActionForward对象返回给控制器ActionServlet。 (6).控制器根据Action组件返回的ActionForward对象和struts-config.xml文件中的配置信息确定要跳转到的试图页面。 (7).视图访问模型组件返回的信息并进行相应的数据设置和显示,最
35、后将生成的页面发送给客户端浏览器。 2.Struts可以做什么 Struts允许具有不同技能的开发人员——WEB设计员、系统分析员、系统工程师数据库工程师——都能够并行地工作。Struts是通过执行“关注点分离”原则来坐到这一点:对做不同事情的代码块进行单独组织,并且使它们之间以某种标准方式进行通信。通过这种方式,人们可以维护或者开发自己的那部分应用程序而无需担心其他部分的问题[21] [22]。 2.3 业务逻辑层 2.3.1 B/S多层体系结构 长期以来C/S(客户端/服务器)两层结构在软件开发中广泛应用,给人们带来相当的灵活性。但是近年来网络应用的快速普及以及业务处理要求的不断
36、提高,C/S模式逐渐暴露出架构上的缺陷:对客户端软件的维护问题;网络传输数据的准确性和稳定性问题;搞负荷处理和平衡负载问题等。随着网络应用技术的成熟,针对这一系列的问题,基于多层框架(3层或以上)的B/S(Browser/Server)结构应运而生,典型的情况下由表示层、业务逻辑层和数据层各自独立组成所谓“三层架构”,其中数据层又叫企业信息系统层、集成层或者持久化层,本文从技术角度采用持久化层的称谓。 该体系的核心是EJB逐渐,EJB是J2EE分布式应用核心,但是一般的Web应用并部要求实现分布式应用,因此可以使用其他途径,如Hibernate,JDO对象关系映射(Object-Relati
37、on Mapping,ORM)工具或者直接使用JDBC API实现数据持久化。 在B/S多层体系结构中,客户端只需要符合要求的通用浏览器(例如本系统要求IE6.0以上版本)就可以使用所有服务,省去了客户端软件安装和维护成本,从而有效降低部署费用;客户端(其实是表示层组件,这里只为和C/S模式的对比理解)不再直接访问数据库,而通过中间业务逻辑层实现代理服务,从而可以方便地进行数据库和业务逻辑组件进行,各层次组件之间可以独立变化;多层结构可以方便地管理外部资源,各组件之间通过服务接口互相协作,可以使用各种优化技术提高资源和服务的利用率,典型的应用是资源池化技术;错误和性能降低局部化,单独组件模块
38、的错误和超载被最大限度地限制在本模块内部,维持整体服务的可用性。 当然多层体系结构使系统层次结构复杂化,也在一定程度上造成了内部通信性能的降低和系统维护成本的上升。 2.3.2 BO的概念与应用 1.业务对象(Business Object,BO) 业务对象是对真实世界的实体的软件抽象,包括状态和行为。因此判断一个类是否可以成为业务对象的一个重要标准,就是看这个类是否同时拥有状态和行为。业务对象的基本思想是在简单的Java类中聚合一系列相关的业务操作,这类业务操作可能对应一类实体、过程或者事件,从而更加清晰地划分系统结构。因此业务对象可以分为3种类型: (1).实体业务对象:代表应用
39、中的实体,是业务领域中的名词,例如应用系统中的客户对象,典型的业务逻辑有登陆、注销。 (2).过程业务对象:代表应用中的业务过程或流程,是业务领域中的动词,例如前述的登陆操作可以单独作为过程业务对象。 (3).事件业务对象:代表应用中的一些事件,如异常、警告或超时。 2.业务对象的优点 业务对象最重要的作用是提供了一种通用而直观的术语和概念,不管是技术人员还是非技术人员,不同的开发角色都可以方便地理解和共享;业务对象先天具有可重用性,可以提高系统的开发速度,减少冗余;业务对象只对外暴露接口,隐藏实现细节,可以方便地实现局部变更或重构。更重要的一点是,业务对象的先天特性使其成为一个很好的
40、模式进化种子,常见的Java设计模式,如业务代表模式、命令模式、门面模式和工厂化方法模式中都可以看到这种“聚合实现、集中控制”的思想。 例外在初学Java Web的时候,可能会对各种各样的XO的概念产生迷惘与混淆。常见的XO罗列如下: (1).VO,实际上很模糊,通常指Value Object和View Oject。 (2). View Oject,界面展现需要的对象,如Struts的FormBean。 (3). Value Object,早期被作为Value Object和Transfer Object的总称。实际上Value Object的真正意义在于它的内容,而不是身份。Valu
41、e Object同Data Transfer Object其实相当近似,都需要实现Serializable接口从而支持在网络上传播,即实现“对象序列化”的概念。 (4). Data Transfer Object,数据传输对象,在应用程序不同层次之间传输数据对象,在一个分布式应用程序中,通常可以提高整体的性能。在某些地方可能描述为Data Translate Object。 (5).PO,也许就是Persistent Object,基本上就是实体(Entity)。在不同的体系结构和实现方式里面,这些PO对象之间有可能发生一定的重叠[4]。 2.4 数据连接池 2.4.1 数据连接池介绍
42、 数据连接池技术就是预先建立一些数据库连接,并放置在内存“池”对象中以备用户进行数据库操作时直接使用。数据连接池技术使得程序不再需要对每一次操作都必须进行依次数据库连接操作,只需要从内存“池”中取出一个连接即可。当程序操作完数据库之后,只要把连接重新放回内存“池”即可。数据库连接的建立、断开等都由数据连接池统一管理。 数据连接池技术大大提高了Web应用系统的性能,系统管理人员还可以根据系统访问量来动态设置连接池的连接数、每个连接的最大使用次数等参数。 2.4.2 连接池技术的优点 1.提升了数据库操作性能。由于每次进行数据库操作再也不需要重新建立连接 了,从而大大节省了很多重复的系统
43、资源开支。只需要连接池管理器分配一个数据库连接即可,使用完毕之后再将连接放回到池中。 2.降低了由于大量资源占有而造成排队等待现象的风险[16]。 2.5 DAO:数据访问对象 2.5.1 DAO介绍 DAO就是Database Access Object,数据库访问对象的英文缩写。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理一个关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等。使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的业务逻辑分开。实现DAO模式能够更加专注于编写数据访
44、问代码。 一个典型的DAO实现有下列几个组件: 1.一个DAO工厂类; 2.一个DAO接口; 3.一个实现DAO接口的具体类; 4.数据传递对象(有些时候叫做值对象)。 DAO根据数据源不同,数据访问也不同。根据存储的类型(关系数据库、面向对象数据库、文件等等)和供应商实现不同,持久性存储(比如数据库)的访问差别也很大。使用数据访问对象(DAO)模式来抽象和封装所有对数据源的访问。DAO管理着与数据源的连接以便检索和存储数据。 DAO实现了用来操作数据源的访问机制。DAO完全向客户端隐藏了数据源实现细节。由于当低层数据源实现变化时,DAO向客户端提供的接口不会变化,所有该模式允许
45、DAO调整到不同的存储模式,而不会影响其客户端或者业务组件。重要的是,DAO充当组件和数据源之间的适培器。 在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。 该系统采用了DAO模式,这样就可以将所有的对数据库的操作都封装在DAO中,避免了程序代码中出现很多的SQL语句,这样对于系统的维护和升级扩
46、展有很大帮助,也有利于系统开发期间的调试[19]。 2.6 ORACLE 2.6.1 ORACLE介绍 SQL Server好比是一个文件,Oracle好比一个硬盘,首先,SQL Server使用范围不同,SQL Server 适用与中小型企业,Oracle则是大型企业,也就是电信那种类型的企业,处理海量数据Oracle才能体现出他的优点 ,另外,SQL Server是关系型数据库,Oracle是面向对象的数据库,SQL Server使用语言是tsql,ORACLE使用的是PL/SQL,但是他们都遵从SQL99标准!并且Oracle具有跨平台能力;SQL Server只在WINDOWS下
47、可以使用。 2.6.2 两个数据库的比较 1.SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。它支持C/S结构,只针对windows客户,可以用ADO、DAO、OLEDB、ODBC连接,操作简单,但只有图形界面。 2.Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最
48、适合的解决方案。对开发商全力支持。它支持多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接,较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。 2.6.3 PL/SQL的优点 1.PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。 2.PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型。 3.PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命
49、令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。 4.可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。 5.PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利。 6.对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤[15]。 2.7 JSP
50、2.7.1 JSP介绍 JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新






