




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前 言电子商务(din z shn w)在全球(qunqi)各地广泛的商业(shngy) HYPERLINK /view/13505.htm t _blank 贸易活动中,在 HYPERLINK /view/1706.htm t _blank 因特网开放的网络环境下,基于 HYPERLINK /view/7718.htm t _blank 浏览器/服务器应用方式,实现消费者的 HYPERLINK /view/7777.htm t _blank 网上购物、商户之间的 HYPERLINK /view/21878.htm t _blank 网上交易和在线电子支付以及各种商务活动、交易活动、 HYPE
2、RLINK /view/2761.htm t _blank 金融活动和相关的综合服务活动的一种新型的商业 HYPERLINK /view/283828.htm t _blank 运营模式。不仅改变着企业本身的生产、经营、管理活动,而且影响到整个社会的经济运行与结构。银行是围绕货币,生产和出售一系列相关服务的企业,货币本身就是一种价值符号,这一特质,决定了银行业是特别适合信息化的行业。事实上,银行业一直是使用信息技术最广泛、最深入、最先进的行业。过去10多年,银行依托信息技术实现的金融创新,已在很大程度上改变了银行的经营管理,银行应该说是电子商务的先导者。现阶段各家银行为了方便客户都开通了电子银
3、行,ATM自动取款,销售点终端POS等服务。近年来中国的银行卡业务正呈爆炸式增长态势,银行为了刺激持卡人的消费,收集持卡人消费行为数据等目的,不断推出各式各样的积分回馈活动。为了方便用户的查询和兑换,并防止出现排队等候等现象,开发一个透明、友好、快速、便捷的银行积分管理系统已经刻不容缓。因为电子商务技术在银行中的广泛应用,采用网络方式的银行积分管理系统已逐步出现。所以本文拟利用电子商务在银行方面的优势,开发基于JSP技术的银行积分系统。第一章 绪论一、问题(wnt)的提出目前,各大银行都开展了各种积分回馈(hu ku)活动,银行(ynhng)不仅可以通过持卡人的消费获得手续费收入,同时也可以了
4、解到消费者的消费行为,从而为将来潜在的促销获取极有价值的信息。另外由于各大银行的积分都是永久有效的,这样大量的积分活动也有助于留住持卡人,防止用户的流失。随着持卡消费的数量在不断上升,以及消费方式的多样化(如:ATM,POS等),传统的积分管理系统已经不能满足现在业务的要求,如大厅营业柜台经常出现排队等候现象。而且随着网络的普及,持卡用户在网上或是依靠电话进行的业务量不断增加。为了更好地服务于客户并且分流营业柜台的业务量,并帮助持卡人及时地了解银行开展的各种活动以及各种回赠业务、方便地查询自己的消费记录和积分情况,本文拟开发一套银行积分管理系统,以便方便、及时、准确的了解持卡人的信息。二、现有
5、解决方案随着网络的普及和上网人数的不断增加,人们逐渐习惯于在网上进行各种商品的交易,于是电子商务孕育而生。为了提高企业市场竞争力,越来越多的企业正在通过电子商务的形式进行网上商品交易,构建适合企业发展的商务网站己经成为目前企业比较关心的问题。发展电子商务离不开资金流,而银行作为天然的资金交易和结算方,必然成为电子商务的重要参与者与合作方。银行近年来不断发展电子商务,因为一方面电子商务使银行大量的业务在网点之外的各种电子化服务渠道中得到处理,从而有利于将有限员工从繁杂的业务中解脱出来,为客户提供高品质的服务;另一方面,以网上银行为代表的银行电子商务,将提供打破时空的3A服务,使客户不受时间、场所
6、的限制,同时选择自己喜欢的方式办理业务。这样就降低了客户办理业务的时间乃至费用,增加了人性化的成分,从而大大提升了服务品质,提高了客户价值。其结果最终将增强银行自身的竞争力,提高市场份额。近几年,JPS技术己经成为电子商务网站开发语言的事实标准。利用JPS+Javabean技术开发商务网站,可以使系统的内容表示与应用逻辑分离开来,使得Wbe服务器、操作平台以及组件很容易升级或切换,且不会影响基本程序,能够适应系统的不断变化和发展。三、本文的主要工作 本文主要学习JSP技术,掌握它的概念、特点、与原有的网络编程语言的区别以及实际的开发,复习SQL语言和SQL Server数据库。本论文主要研究:
7、用JSP与JavaBean技术实现B2C模式的银行积分管理系统。JSP与JavaBean技术的结合使用,可以实现页面显示和业务逻辑处理的分离,使得其中一个变动不会影响另一个或要求另一个必须做出反应,更重要的是保证了对数据库操作的代码不显示在页面中,在一定程度上保证了数据的安全、可靠,并使得系统调试方便、代码重用率高,从而提高程序开发效率。本论文的主要(zhyo)内容包括:第二章叙述(xsh)了电子商务(din z shn w)、JSP、JavaBean、JDBC、SQL Server的基本知识。第三章介绍了本系统的需求、总体设计、以及在实现中用到的关键技术,及本设计中相应的代码。第四章是具体实
8、现,首先介绍了开发环境和搭建,接着介绍了本系统的总体框架,最后是功能设计、实现和数据库设计、实现以及系统的运行结果。第五章对本文的工作作了总结,并提出了其中的不足和下一步努力的方向。第二章 相关背景和理论一、电子商务应用(yngyng)模式及其发展(fzhn)(一)电子商务(din z shn w)的概念电子商务,Electronic Commerce,通常是指是在全球各地广泛的商业 HYPERLINK /view/13505.htm t _blank 贸易活动中,在 HYPERLINK /view/1706.htm t _blank 因特网开放的网络环境下,基于 HYPERLINK /vie
9、w/7718.htm t _blank 浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的 HYPERLINK /view/7777.htm t _blank 网上购物、商户之间的 HYPERLINK /view/21878.htm t _blank 网上交易和在线电子支付以及各种商务活动、交易活动、 HYPERLINK /view/2761.htm t _blank 金融活动和相关的综合服务活动的一种新型的商业 HYPERLINK /view/283828.htm t _blank 运营模式。“中国网络营销网” Tinlu相关文章指出,电子商务涵盖的范围很广,一般可分为企
10、业对企业(Business-to-Business),或 HYPERLINK /view/38340.htm t _blank 企业对消费者(Business-to-Consumer)两种。另外还有 HYPERLINK /view/99548.htm t _blank 消费者对消费者(Consumer-to- Consumer)这种大步增长的模式。随着国内Internet使用人口之增加,利用Internet进行网络购物并以银行卡付款的消费方式已渐流行,市场份额也在快速增长,电子商务网站也层出不穷。电子商务最常见之安全机制有SSL及SET两种。 电子商务包括三个要素:一是载体是通讯网络;二是信息
11、是电子化的;三是商业行为。随着技术的发展和网络的普及,电子商务越来越呈现出区别于传统商务的得天独厚的优势,一是交易的效率大大提高,信息以光电的速度传输;二是经济活动辐射的区域大大拓展,超越了物理位置的界限,直达网络的边界;三是交易成本大大降低,使得服务提供商有能力提供更强的增值服务。这种优势使得电子商务在过去几年以乘数级的加速度发展,所有人都在预测电子商务激动人心的前景,不少人包括美国政府在内甚至断言,我们已经进入了网络经济的时代。不管这种论断是否科学,有一点可以肯定,电子商务是不可阻挡的趋势,正以迅猛的速度向我们走来,银行毫无例外地也要接受电子商务的洗礼。 (二)电子商务的模式电子商务模式可
12、以分为以下三种类型: 1企业与消费者之间的电子商务(Business to Customer,即B2C)。这是消费者利用因特网直接参与经济活动的形式,类同于商业电子化的零售商务。随着因特网的出现,网上销售迅速地发展起来。 2企业与企业之间的电子商务(Business to Business,即B2B)。B2B方式是电子商务应用最多和最受企业重视的形式,企业可以(ky)使用Internet或其他网络对每笔交易寻找最佳合作伙伴,完成从定购到结算的全部交易行为。 3消费者与消费者之间的电子商务(din z shn w)(Consumer to Consumer,即C2C)。C2C商务平台就是通过为买
13、卖双方提供一个在线交易平台,使卖方可以主动提供商品上网拍卖,而买方可以自行选择(xunz)商品进行竞价。(三)电子商务的优越性电子商务是因特网爆炸式发展的直接产物,是网络技术应用的全新发展方向。因特网本身所具有的开放性、全球性、低成本、高效率的特点,也成为电子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的价值,它不仅会改变企业本身的生产、经营、管理活动,而且将影响到整个社会的经济运行与结构。其优越性有以下几点:1电子商务将传统的商务流程电子化、数字化,一方面以电子流代替了实物流,可以大量减少人力、物力,降低了成本;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间
14、、任何地点进行,从而大大提高了效率。2电子商务所具有的开放性和全球性的特点,为企业创造了更多的贸易机会。3电子商务使企业可以以相近的成本进入全球电子化市场,使得中小企业能拥有和大企业一样的信息资源,提高了中小企业的竞争能力。(四)电子银行与电子商务的结合在现代电子商务中,资金流、信息流和物流是三个必备的因素。银行因得天独厚地掌控了资金流,在这种有利情况下,银行最核心的竞争力就是能通过资金流衍生出新的金融产品,通过与保险、基金、证券、期货以及信托等的联合创新金融衍生产品。像交通银行的电子银行业务除了对公、对私支付、一般性转账支付之外,其企业网上银行还推出了集团客户现金管理产品。现金管理产品就是集
15、团客户通过总公司把各分公司的资金以现金形式集中起来,供集团内部调拨使用,这样,集团内部就避免了一个公司因资金短缺而贷款,同时另一个公司资金富余而存款的现象。现在,使用其现金管理产品的集团企业已经达到582家。另外,其个人网上银行推出了基金超市、外汇买卖等产品,推出了“家庭账户”的概念。从上述可以看出,银行与电子商务结合是银行业发展的主要方向,本文主要研究的是消费者与企业之间的电子商务,基于JSP技术,后台采用SQL Server数据库,实现用户的各种查询、管理员的系统管理功能,以及各种报表的产生。 二、 JSP及相关技术介绍(一)JSP1JSP产生(chnshng)的背景为了(wi le)弥补
16、中需要逐行输出语句的缺点,年初Sun公司发布(fb)了第一个公开的规范草稿。它是JSP0.91版,看上去与微软的极为相似。年月公司又发行了版,年月日正式发行。此后又经历几个版本,最新版本是年发布的。2什么是JSPJSP的 全称是JavaServer Page,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准是在技术基础上发展起来的是在Servlet服务器端编译执行的Web数据库系统应用程序编程语言,其脚本语言采用Java,完全继承了Java的所有优点。从本质上说,是JavaServer Page API的一个扩展。事实上,JSP页面在处理请求之前都要编译
17、成Servlet,所以它具有的Servlet所有优势,包括访问Java API。简单地说,一个JSP页面就是包含了能够生成动态内容的可执行应用程序的HTML网页。也就是在传统的网页HTML文件(*.htm,*html)中加入Java程序片段(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp)。TAG绝大部分是以“”结束的。3JSP的工作原理Web服务器在遇到访问JSP网页的请求时,先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。其中程序片段可以操作数据库、重新定向网页以及发送email等,这是建立动态网站所需要的功能。在一个JSP文件第一次被请求时,JSP引擎先把
18、该JSP文件转换成一个Java源文件,在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息如果转换成功,JSP引擎调用Java虚拟机的Javac程序把该源文件编译成相应的class文件,该class文件也就是一个Servlet程序然后创建一个该Servlet的实例,提供服务响应用户的请求。响应流程如图2-1所示:图2-1 JSP响应流程图在创建一个Servlet实例时,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。然后jspServlet方法被调用来处理客户端的请求。对每一个请求,JSP引擎创
19、建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程。Servlet的这种以多线程响应请求的方式可大大降低对系统资源的需求,提高系统的并发量及响应时间。由于该Servlet始终驻于内存,所以响应是非常快的。如果JSP文件被修改了,服务器将根据设置决定是否对该文件重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,JSP引擎在必要的时候可能将Servlet从内存中移除,此时JSP引擎将会调jspDestroy用方法
20、(fngf)进行必要的清理工作。调用完方法jspDestroy()方法之后,该Servlet的生命周期也就结束了。4JSP与CGI、API、PHP的比较(bjio)电子商务的发展对传统的技术提出了强有力的挑战,由于电子商务的内部逻辑复杂,安全性要求苛刻,商务形式发展变化快,传统的CGI技术(Common Gateway Interface,通用网关接口)己不能适应要求。目前(mqin),构建网站的开发工具越来越集中在几种典型的技术上,如,ASP(Active Servlet,动态服务器网页)、PHP(Professional Hypertext Preprocessor,超文本预处理器)及JS
21、P。将JSP与CGI.ASP.和PHP相比,有如下特点:(1)JSP与CGI相比在早期,动态网页主要采用CGI技术,它是一个WWW服务器主机对外服务的标准接口。一个CGI接口的功能就是在超文本文件和服务器主机应用程序间传递信息。编写CGI程序的常用语言有C/C+和Perl及Java等。优点:CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。缺点:CGI的应用程序一般都是一个独立的可执行程序,和WWW服务器各自占据着不同的进程,一般一个CGI程序只能处理一个用户请求。每一个用户请求,都会激活一个CGI进程,当用户请求数量非常多时,会大量挤占系统的资源如CPU内存,时间等,造成效能低下。而JS
22、P程序由JSP引擎执行,JSP引擎具有多线程响应的方式,并与HTTP服务器一起长驻内存,执行多个请求时,JSP的执行效率比CGI高工。(2)JSP与ASP相比ASP是微软公司开发的一种动态网页技术,实际上是脚本加COM的组合,可以使用脚本语言VBScript和JavaScript作为编程语言。一个ASP文件用脚本或COM来表示Web请求,服务器端的解释器负责解释执行这些脚本与COM,并且可以在ASP中去创建一个新的COM对象,同时再通过这些COM组件完成更多的工作。缺点:ASP只能在微软的NT平台上运行,无法实现跨操作系统的应用,Windows本身的所有问题都会一成不变的累加到它的身上是;是解
23、释执行方式,运行效率不高;COM的开发较复杂。JSP是基于Servlet以及整个Java体系的Web开发技术,具有真正的跨平台性,可以在任何服务器中运行,符合“Write once,run anywhere”原则,可以工作在Unix和Windows平台下。JSP可以利用JavaBean组件技术,而JavaBean其实是Java的一个类,比较容易实现。另外,在JSP中使用JavaBean可以将显示和业务逻辑处理完全分离开来,使模块开发、HTML及程序设计的工作分工非常明确,确保工作的高效率。(3)JSP与PHP相比(xin b)PHP是一个(y )纯粹的Script翻译器,和JSP一样是运行(y
24、nxng)于服务器端的嵌入式脚本语言,其语法借鉴了C、Java和Perl等语言,并结合自己的特性,使开发者能够快速开发动态页面。优点:可以跨平台。缺点:执行方式是解释执行,执行速度比较慢没有统一的数据库接口,如果改变数据库平台,应用程序也需要随之改变没有特别好的框架结构,团队合作比较困难没有组件支持,安装复杂,缺少企业级支持,缺少商业支持,必须和Apache一起才能使用。由于PHP缺乏规模支持与多层结构支持,及相应的安全保障,再加上提供的数据接口支持不统一,使得它不适合运用在电子商务中。JSP具有标准的数据库接口(JDBC),可以简单快捷的访问任何常见的数据库,为各种常用的数据库提供无缝连接运
25、行效率更高可以得到更广泛的技术支持标一记可扩展能通过异常处理机制有效防止系统崩溃,能利用内存管理机制等提高系统安全性。JSP第一次编译时,运行速度慢。但在页面编译后没有再被修改时,它的访问速度会比ASP、PHP快几倍。5JSP基本语法(1)JSP的脚本元素a. 隐藏注释():用户不能看见注释。b. 声明语句():定义方法和变量。c. 脚本段():JSP代码片段或脚本片段,是描述JSP页面处理的Java代码。d. 表达式()把JSP生成的Java数据直接插入到HTML页面。(2)JSP指令元素a. page指令:定义JSP文件中的全局属性。b. include指令:在JSP页面中包括另一个文件中
26、的内容。c. taglib指令:让用户自定义新的标签。(3)JSP动作元素a. :实例化JavaBean,并指定一个名字和作用域。b. :设定JavaBean的属性。c. :获取JavaBean的属性。d. :包括静态和动态文件。e. :将客户端的请求从一个JSP页面转到另一个JSP页面。f. :提供Key/value的值,与、等标签一起搭配使用。6JSP内置对象要存取执行JSP代码的servlet,可以使用下面这些对象。(1)request对象(duxing)包含了来自(li z)用户端的请求信息,此请求包含来自GET/POST请求的参数。经常使用getParameter方法来提取FORM表
27、单中填写的信息。(2)response对象(duxing)组织发送到用户端的数据,是对用户端的回应。(3)out对象代表向客户端发送数据的对象,是浏览器需要显示的内容,是文本级。(4)pageContext对象代表当前页面运行的一些属性,对网页的属性进行管理。(5)session对象由服务器自动创建,用于保存每个用户的信息,是与请求有关的会话期。主要用来实现会话跟踪,用来在客户端与服务器之间保持状态。(6)application对象保存了一个应用系统中公有的数据,并为所有客户共享,是servlet正在执行的内容。(7)page对象代表JSP页面产生的对象,是JSP网页本身。(8)config对
28、象提供一些配置信息,是的构架部件。(9)excption对象存储了JSP文件运行时所产生的异常信息,针对错误网页。(二)JavaBean1什么是JavaBeanJavaBean是使用Java语言描述的、易用的、与平台无关的软件组件模型,用于设计可重用的组件,有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速地生成新的应用程序,易维护,可以实现代码重复利用。在JSP程序中常用来封闭事务逻辑、数据库操作等,可以很好地实现业务逻辑和前台程序(如JSP文件)的分离、逻辑的封装、程序的易于维护等,从而使得
29、系统具有更好的健壮性和灵活性。实际上,JavaBean就是一种使用符合某些命名方法和设计规范的Java类。2JavaBean的特征JavaBean具有以下特性:(1) JavaBean类必须有一个没有参数的构造函数,这个构造函数在使用实例化类时调用。如果JavaBean类内没有任何构造函数,系统会自动生成一个没有参数的构造函数。(2) JavaBean内的属性都应该定义为私有的,那么这些属性只能通过JavaBean内的方法访问或者改变,这样可以较好的保护数据的完整性和封装性。(3) 属性通过setXxx和getXxx来操作。同时(tngsh)拥有setXxx()和getXxx()方法的可以使之
30、具有读写属性,只有getXxx()方法使之具有只读属性,只有setXxx方法使之具有只写属性。3JDBC(1)什么(shn me)是JDBCJDBC(Java Database Connectivity)提供完备(wnbi)的数据库操作方法接口,是程序员和数据库打交道的主要途径,是Java与数据库的连接规范,是一个支持基本SQL功能的通用底层工。JDBC在不同的数据库功能模块层次上提供了一个统一的用户接口,为Java程序员提供了独立于特定的数据库系统而实现与网络数据库互联的方式。JDBC是JDK2.0的一部分,和Java语言一样,是独立于平台和数据库的。利用JDBC,可以使用简单直接的方法完成
31、简单的数据库任务,如基本查询,生成和修改。(2)JDBC的总体结构JDBC的总体结构如图2-2所示,JDBC包含两个部分,它们与数据库独立。一部分是面向程序开发人员的JDBC API,另一部分是面向底层的JDBC驱动器API(JDBC Driver API)。用JDBC实现Web数据库访问时,Java应用程序通过JDBC API访问JDBC驱动器管理者(JDBC Driver), 驱动器负责标准JDBC调用向其支持的数据库所要的具体调用转变。JDBC驱动器管理者用于管理各种数据库软件商提供的JDBC驱动器。对没有提供相应驱动器的数据库管理系统,有特殊的JDBC-ODBC桥驱动器,该驱动器支持J
32、DBC通过现有的ODBC驱动器访问其数据库管理系统。JDBC网络驱动器允许使用通用的网络协议访问不同的数据库管理系统。图2-2 JDBC的总体结构图(3)JDBC的用法根据使用JDBC API层在整个应用中所处的层次,可以把JDBC的用法归结为三种模型两层应用模型两层应用模型中,一个Applet或者一个Java应用直接同数据库连接。这种应用模型中客户机将SQL语句发给本机的JDBC驱动器,JDBC驱动器再将用户的SQL语句传送给数据库,而这些语句的执行结果将被传回给用户,常用于传统的C/S应用。如图2-3所示。图2-3 两层应用(yngyng)模型图三层应用(yngyng)模型三层应用模型中,
33、客户机只是访问业务逻辑层,而业务逻辑层再通过JDBC访问操作数据库。现在(xinzi)大多数的Web应用都是采用这种模型开发和部署。如图2-4所示。图2-4三层应用模型图四层应用模型将数据库访问从业务逻辑层进一步分离出来形成独立的一层,将这个分离出来的层称为O/R映射层。客户机访问业务逻辑层,业务逻辑层再访问O/R映射层,最后映射层通过JDBC访问操作数据库。如图2-5所示。图2-5四层应用模型图三、SQL Server(一)SQL语言介绍SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言.SQL通常使用于数据库的通讯。ANSI(美国国家标准学
34、会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有Oracle、Sybase、Microsoft SQL Server、Access、Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如“Select”、“Insert”、“Update”/“Delete”、“Create”和“Drop”常常被用于完成绝大多数数据库的操作。MSSQL Server就是用的Transact-SQL。SQL
35、语言有着非常突出的优点(yudin),主要是:非过程(guchng)化语言;统一(tngy)的语言;是所有关系数据库的公共语言。(二)SQL Server的体系和结构Microsoft SQL Server与ORACAL、Sybase都是当前比较流行的数据库管理系统(RDMS),随着SQL Server的不断完善与发展,以及与网络操作系统Windows NT的完美结合,它为分布式客户服务器结构程序设计提供了良好的开发环境,也因此越来越受到人们的重视。由于SQL Server与其他设计软件兼容性好,有广泛应用基础。并且SQL Server具有安全性好、扩展性强、支持数据复制、分析功能强大、支持分
36、布式事务等主要特点。既支持大吞吐里的事务处理,也支持数据仓库和决定支持的应用程序。在数据库技术中用户可以通过存储过程与触发器的使用来实施复杂的商业规划,保持数据库中文件、数据的完整性等。采用SQL Server数据仓库技术,可以及时获取所需信息,并进行快速比较分析,为决策者提供充分合理的依据,并可结合相关运筹算法,直接做出决策。Microsoft SQL Server是一个可缩放、高性能的数据库管理系统,它提供了与Windows NT线程和调度服务、性能监视器和事件浏览器的集成,基于Windows管理界面并提供对多个服务器上的远程数据复制管理、服务器管理、诊断和调整的可视化拖放控制.分布式管理
37、对象(DMO)为SQL Server引擎和服务提供了一个对象接口。SQL-DMO是为Windows 95与Windows NT操作系统提供的32位OLE自动化对象,OLE是维护应用程序共享对象的标准和方法,是一种允许应用程序为进行管理或数据访问共享对象的编程方法。DMO是利用OLE结构开发的,它为与OLE兼容的应用程序提供了通向所有SQL Server管理功能的接口,DMO使软件开发者直接访问SQL Server数据对象变成可能。我们利用Visual FoxPro等编程工具就可以使用分布式管理对象实现对SQL Server的直接访问。Microsoft SQL Server所提供的工具使客户端
38、能通过多种方法访问服务器上的数据,这些工具的核心部分即是Transact-SQL(事务 SQL)代码。Transact-SQL是结构化查询语言(SQL)的增强版本,它提供了许多附加的功能和函数。利用Transact-SQL,你可以创建数据库设备、数据库和其它数据对象、从数据库中提取数据、修改数据,也可以动态地改变SQL Server中的设置。因此,使用Transact-SQL大大地提高了应用程序的实用性。(三)JDBC数据库访问(fngwn)技术JDBC API为Java开发者使用数据库提供了统一(tngy)的编程接口,它由一组Java类和接口(ji ku)组成。JDBCAPI使得开发人员可以
39、使用纯Java的方式来连接数据库,并进行操作.在企业级环境中进行的数据库操作远远不只是连接数据库并执行语句,还需要考虑其他方面的要求,包括使用连接缓冲池来优化资源的使用,实现分布式事务处理。在JOBC3.0版本里,包括了两个包:java.sql和javax.sql。java sql:这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句以及准备语句和运行批处理查询等。同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。java.sql:它主要为数据库方面的高级操作提供了接口和类。如为连接管理、分布式事务和旧有的连接提供了更好的抽象,它引入了容器管理的连接池、分布式事
40、务和行集等。数据库厂商一般会提供一组API访问数据库。MS SQLesvrer的JDBC驱动程序的Jar包包括:mssqslesver.jar;msbase.jar;msutil.jar。第三章 系统的设计一、需求分析 (一)系统描述本系统的主要功能是实现根据客户上月的日均余额、ATM交易笔数、Pos笔数和代缴费来计算其积分,并提供给用户多种查询方式。为了方便有针对性地开发各项业务,客户经理可以根据需要产生多种类型的报表,以便分析消费行为。系统管理员则可以添加、修改、删除客户经理信息以及系统管理员信息。1消费类型 本系统根据银行要求对于四种消费进行积分计算,满分100。四种消费是:(1)ATM
41、消费:每月在ATM上进行交易的次数。 (2)POS消费:每月在商户的POS机上交易的次数。(3)代缴费:每月采用本银行(ynhng)提供的水、电、煤、电话、手机等代缴费功能交易的金额。(4)日均余额(y ):每月该用户账户(zhn h)中存款金额*存款天数/30。2积分标准四种消费类型所占比重以及额度标准由银行确定,并能够灵活性,也就是说比重以及额度标准可以随时调整。3用户具有的功能用户可以查询积分明细的历史记录,也可以查询截至到当日本月的积分明细。4客户经理具有的功能按照客户类型(银卡、金卡、钻石卡)、消费类型来进行查询,并生成相应的报表。5系统管理员具有的功能每月月末执行计算功能,将所有用
42、户的本月积分计算并倒入到历史库中。按照客户类型(银卡、金卡、钻石卡)、消费类型来进行查询,并生成相应的报表。客户经理信息维护,包括增加、删除、修改。系统管理员信息维护,包括增加、删除、修改。(二)系统要求1正确性需求此系统所需的数据由各生产系统导入到SQL Server数据库中,保证了数据来源的正确性。2安全性需求用户在使用系统时通过管理员分配的操作员编号、密码进行登陆,保证安全性。3界面需求进入系统后,左边的导航栏中为相应的菜单,右边的页面处显示点击相应菜单所对应的信息。4精度需求 系统对贵宾客户每项的积分按照其实际贡献额度与所持卡类型贵宾客户应有的贡献额度的百分比值来计算,因此运算时保留小
43、数点后两位。5稳定性需求保证服务器与客户端网络正常情况即可。6灵活性需求用户当查询客户的积分时,可以通过刷卡或手工输入民生卡号。7输入输出需求8数据输入需求贵宾客户信息的查询和补录,需先输入民生卡号。9数据输出(shch)需求生成(shn chn)的报表输出方式为导出的Excel;10可维护性需求(xqi)系统如需维护仅在服务器端更新,客户端无影响。二、系统的总体设计三、关键技术实现(一)JDBC的工作原理1JDBC程序实现的步骤(1)引入一个必要的类;(2)加载JDBC驱动程序;(3)标识数据源(URL、Username、Password); (4)分配一个Connection对象;(5)分
44、配一个Statement对象;(6)使用该Statement对象执行检查 SQL语句;(7)从返回的ResultSet对象中检索数据类似于游标的操作;(8)关闭ResultSet对象;(9)关闭Statement对象;(10)关闭Connection对象;2装载驱动程序 通过JDBC来连接关系数据库,应用程序必须采取的第一个合理步骤是加载合适的JDBC驱动程序,并获得一个与该数据库的连接。使用JDBC的DriverManager类可以实现。DriverManager类实现了java.sql.Driver接口。加载Driver接口并把它注册给DriverManager类有两种方法: (1)使用C
45、lass.forName()方法;(2)标识jdbc.drivers系统属性内的Driver类。 在本论文中采用第一种方式,主要的代码如下:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();3建立连接 实现Connection接口的一个类对象(即一个Connection对象)代表一个与某个具体数据源的连接。Connection对象实际上是建立一个上下文环境,以便程序员能在它里面创建并执行SQl命令。在本论文中的关键代码如下: Connection con=java.sql.DriverManage
46、r.getConnection(jdbc:microsoft:sqlserver:/:1433;DatabaseName=customer,sa,123); 4语句(yj)与结果集 Statement接口提供(tgng)了执行SQL语句和检索结构的一种方法(fngf)。由于Statement是一个接口,所以程序员不能直接创建一个Statement对象。通常创建这个对象的方法是: Statement statement = connection.createStatement(); 当建成一个Statement对象之后,它提供一个工作空间供用户创建SQL查询,执行该查询,以及检索返回的查询结果。
47、当建成一个Statement对象之后,就可以通过调用该Statement对象的下列执行方法来执行SQL查询:executeQuery()用于在单个ResultSet对象的数据库中检索出数据的SQL语句。 本论文中部分相关的代码:Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select * from pointStandard where type=+type+);rs.next();int atm=rs.getInt(atm);int atmpoint=rs.getInt(atmpoint);execu
48、teUpdate()执行不返回ResultSet对象的查询。它的返回值是一个整数(称为更新计数),它给出受到影响的行数。 本论文中计算atm积分值用到更新的语句,其主要代码为:res=st.executeQuery(select * from atm2 where card=+cusno+);res.next();float atmsum=(res.getInt(autoTimes)*atmpoint)/atm;int col=st.executeUpdate(update atm2 set point=+atmsum+ where card=+cusno+);execute()执行返回多个结
49、果集,多个更新计数值或这两者组合的语句。本论文中,在增添信积分记录、客户信息、系统管理员信息等多个地方用到该语句,其部分代码:Date now=new Date();month=now.getMonth()+1;st.execute(insert into hostory(card,atm,pos,charge,dayvalue,point,months) values(+cusno+,+atmsum+,+possum+,+chargesum+,+dayvaluesum+,+sum+,+month+); (二)JavabeanJavaBean 是一种(y zhn)JAVA语言(yyn)写成的可
50、重用组件。为写成JavaBean,类必须是具体的和公共的,并且(bngqi)具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。1JavaBea
51、n的概念按着Sun公司的定义,JavaBean是一个可重复使用的软件组件。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点: (1)可以实现代码的重复利用;(2)易编写、易维护、易使用;(3)可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。2JavaBean的编写编写javabean就是编写一个java的类。为了能让使用这个bean的应用程序构建工具知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则: (1)如果类的
52、成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:getXxx(),用来获取属性xxx; setXxx(),用来修改属性xxx。(2)对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用is代替上面的get和set。 (3)类中方法的访问属性都必须是public的。(4)类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。3本文中的JavaBean本文中为了保证银行数据的安全可靠,将重要的信息不直接显示在页面中,采用了JavaBean实现业务内容。以下是部分代码:Jsp页面中:用来说明使用的javabean的名字,范
53、围(fnwi),以及对象的名称。Javabean:package score;import java.sql.*;public class accessuser /用来访问客户(k h)登陆信息的数据库 private Connection con; public accessuser() /建立(jinl)与数据库的连结 try /装载驱动程序 Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance(); /创建连接con=java.sql.DriverManager.getConnection(jdbc
54、:microsoft:sqlserver:/:1433;DatabaseName=manager,sa,123); catch(Exception e) e.printStackTrace(); public int queryuser(String cardno,String password) int re=0; /result=0 表示该贵宾不合法;result=1 表示该贵宾合法 try System.out.println(*); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery(select
55、* from userinformation where userno=+cardno+); rst.next(); System.out.println(cardno); if(rst.getString(userpassword).equals(password) re=1; rst.close(); stmt.close(); catch(Exception e) e.printStackTrace(); return re; (三)Session在服务器上,通过为在站点上的用户创建一个内建session对象保存该用户的信息(xnx)。当用户第一次访问站点时,分配给用户一个session
56、对象和一个(y )单独的会话ID,这个(zh ge)ID是惟一的。在接下来的请求中,会话ID标识了这个用户,session对象作为请求的一部分发送给servlet,servlet能从session对象中读取信息,或者为其添加信息。当客户端允许使用Cookie时,内建Session对象使用Cookie进行会话跟踪,如果客户端禁用Cookie,则选择使用URL重写。session对象和客户端的会话紧密联系在一起,它由容器自动创建。session对象主要方法有:getAttribute(String name),setAttribute(String name, java.lang.Object v
57、alue),removeAttribute(String name)等。本文中主要用session来记录用户的卡号或是管理员的工号,以便一次登陆多处使用。其中部分代码如下:保存信息到session中:session.setAttribute(adminno,adminno);从session中读取信息:String usercard=session.getAttribute(userno).toString();(四)SQL语句SQL是一种介于(ji y)关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。SQL是一个通用的、功能极强的关系数据库语言。1定义(dngy)基本表SQL语
58、言(yyn)使用CREATE TABLE语句定义基本表,其一般格式为:CREATE TABLE(列级完整性约束条件 ,列级完整性约束条件。 ,);其中是所要定义的基本表的名字,它可以由一个或多个属性(列)组成。2查询其一般格式为: SELECTALL|DISTNCT, FROM, WHILE GROUP BYHAVING ORDER BYASC|DESC;整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按的值进行分组,该属性列值相
59、等的元组为一个组。通常会在满足指定条件的组中作用集函数。如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。如果有ORDER子句,则结果表还要按的值的升序或降序排序。SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。本文中用到的查询语句比较多,下面列举其中一部分代码:select * from pointStandard where type=+type+select * from atm2 where card=+cusno+3插入数据 SQL的数据插入语句INSERT通常有两种形式。一种是插入一个元组,另一种是插入子查询结果。后者可以一次插入多
60、个元组。(1) 插入单个元组其一般格式为: INSERT INTO(,) VALUE(,。); 其功能是将新元组插入指定表中。其中新记录属性列1的值为常量1,属性列2的值为常量2,。INTO子句中没有出现的属性列,新记录在这些列上将取空值。 但必须(bx)注意的是,在表定义时说明了NOT NULL的属性列不能取空值。否则会出错。如果INTO子句(z j)中没有指明任何列名,则新插入的记录必须在每个属性列上均有值。本设计中主要用到这种插入方式,其中(qzhng)部分代码:insert into hostory(card,atm,pos,charge,dayvalue,point,months)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论