网上购物系统网上商城管理系统论文.doc

上传人:可****阿 文档编号:92879089 上传时间:2023-06-16 格式:DOC 页数:46 大小:2.07MB
返回 下载 相关 举报
网上购物系统网上商城管理系统论文.doc_第1页
第1页 / 共46页
网上购物系统网上商城管理系统论文.doc_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《网上购物系统网上商城管理系统论文.doc》由会员分享,可在线阅读,更多相关《网上购物系统网上商城管理系统论文.doc(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 XXXXXX大学本科生毕业论文(设计) 题 目 网上商城管理系统 学 院 计算机学院 专业班级 级软件工程一班 学生姓名 XXXXXXXXXXXXXXXXX 指导教师 XXXXXXXXX 撰写日期:二XX年五月四日 42目 录 1 引言11.1 系统开发的背景和现状11.1.1 电子商务网站开发背景11.1.2 电子商务网站的现状11.2 系统开发的目的和意义21.2.1 系统开发的目的21.2.2 系统开发的意义22 系统运行环境和开发平台32.1 系统运行环境32.1.1 系统软件环境32.1.2 系统硬件环境32.2 系统开发平台42.2.1 开发语言环境42.2.2 开发所需工具简介

2、42.2.3 开发所用到的技术简介42.2.4 开发所需插件63 系统可行性研究和需求分析73.1 系统可行性分析73.1.1 市场可行性分析73.1.2 技术可行性分析73.1.3 时间可行性分析73.1.4 成本收益的可行性分析73.1.5 系统后续开发和维护的可行性73.2 系统需求分析83.2.1 系统架构设计83.2.2 用户和管理员的功能需求93.2.3 性能需求104 系统概要设计114.1 系统总体功能流程图114.2 系统数据库设计134.3 系统页面和模块设计145 总体设计与实现155.1 数据库设计与实现155.1.1 数据库表设计155.1.2 数据库的约束与关系16

3、5.2 系统主要功能的设计与实现165.2.1 数据库连接池类与数据库工厂类简介165.2.2 用户注册登录模块的实现方式205.2.3 管理员登录和其功能范围的实现245.2.4 商品购买及购物车的实现295.2.5 订单和订单管理的实现方式316 系统测试366.1 系统测试概述366.2 系统黑盒测试366.3 系统白盒测试377 结语397.1 本系统的优点397.2 本系统的不足之处及发展意见397.3 在系统设计与实现过程中的收获40参考文献41致谢42附录43网上商城管理系统XX信息与管理科学学院软件工程专业摘要: 21世纪是电子商务蓬勃发展的世纪。社会经济的发展使得人们的生活水

4、平有了很大提高。计算机科学的发展和互联网的普及,电子商务在经济发展中的作用也越来越明显,因此很受大家的欢迎。本系统是以JAVA语言为基础,用JSP Servlet技术来实现的一个在线购物及后台管理系统。它实现了一个在线购物网站所需的基本功能,包括:商品展示,商品检索,商品评论,购物车,商品添加,订单管理等功能。它提供了友好的交互页面和丰富的功能,通过页面展示丰富多样的产品,让顾客流连忘返。本系统是一个B2C模式的在线购物平台。B2C模式是电子商务领域发展较为成熟的平台之一,典型代表为卓越、京东。本系统采用B2C模式,通过强大的后台管理功能和后续研发优势,本系统必将更加完善,更加满足电子商务发展

5、要求。关键字:电子商务、JSP Servlet、B2C E-commerce & Management SystemAbstract: We all believe that ,in the 21st the e-commerce will develop rapidly and greatly. The rapidly developing social economy contribute to the improvement of common human life.With the developing of Computer Science and the prevalence of

6、 Internet, electronic commerce is play a more and more important role in our social economy,and its advantages make it popular to us. This system is based on JAVA,and its was completed by JSP Servlet technology. It supplies many useful functions which almost all the online trading systems need, whic

7、h including : goods displaying, goods searching, goods comment, goods add, order management,etc. The friendly front pages display a lot of goods of any kinds, this is the attraction of my system. Its a system in B2C mode.B2C mode is one of the maturest modes in e-commerce area, JingDong Online Mall

8、is typical representative of this mode. Our excellent background management provides favorable support to our system. This will helps our system adapt to the development of e-commerce developing in the future.Keywords: Electronic commerce,JSP Servlet,B2C1 引言1.1 系统开发的背景和现状1.1.1 电子商务网站开发背景 近年来,随着Inter

9、net的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。 电子商务代表着未来贸易方式的发展方向,其应用和推广将给社会和经济带来极大的效益。具有强大生命力的现代电子交易手段己越来越被人们所认识,发达国家在这方面有很多年的发展历史,发展中国家也正在加紧制定总体发展战略,大力促进电子商务在国民经济各个领域的应用,力争在越来越激烈的国际竞争中占据有利的地位。因此,对于网上购物技术的研究和实现,以及搭建一个实用的网上商店是很重要的。1.1.2 电子商务网站的现状 在美、日等信息化程度较

10、高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特、家庭仓储、科罗格、J.C培尼等纷纷跻身于网络经商的行列。 在我国,网上购物从无到有也不过短短几年时间。如今,在北京、上海、深圳等大城市,已有200多家商场,专卖店开设了网上商店,还有一些正处在观望阶段。真正意义上的网上购物,即货款的结算在网上进行,已在国内实现。电子商务的发展也越来越多样化,模式有B2B,B2C,C2C等,也涌现出一大批优秀的电子商务网站,从淘宝,拍拍,阿里巴巴外贸,卓越,贝塔斯曼,到现在的中关村在线,1号店,京东商城等。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为

11、国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了虚拟银行、网络营销、网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。不仅如此,基于电子商务模式的扩展,团购网络和其他电子商务辅助型网站的也正变得越来越热,在未来,电子商务必定有着更广阔的发展空间。1.2 系统开发的目的和意义1.2.1 系统开发的目的 电子商务主要包括网上广告、订货、付款、客户服务和货物递交等,售前、售中、售后以及市场调查分析、财务核算及生产安排等多项利用Internet开发的商业活动,它对人类社会进行着全方位的改造,在企业竞争、政府部门、公共研究机构、教育以及娱乐等方面改变着人类

12、相互交往的方式,为人们展示了一个全新、璀璨的世界。由于电子商务的出现,传统的经营模式和经营理念将发生巨大的变化。电子商务主要以飞速发展的遍及全球的 Internet 网络为架构,以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托的全新商业模式。电子商务将会创造巨大的效益和机会,会将市场的空间形态、时间形态和虚拟形态结合起来,将物流、资金流、信息流汇集成开放的、良性循环的环路,使经营者以市场为纽带,在市场上发挥最佳的作用,得到最大的效益。1.2.2 系统开发的意义 从电子商务的发展特点来看,可以看出开发一个网上购物系统有以下几点重大的意义:l 投资少,回收快。 l 基本不需要占压资金。

13、 l 24小时营业时间。l 不受店面空间的限制。 l 不受地理位置影响。从这些先天的优势可以看出,电子商务的进一步蓬勃发展是时代的趋势,尽早积极开发网上购物系统网站有着非常大的现实意义。2 系统运行环境和开发平台2.1 系统运行环境 本系统的开发采用 Java 编程语言。由于 Java 语言具有跨平台的特性,因此,本系统可以在 Windows、Linux、Unix 等不同环境下运行。2.1.1 系统软件环境 本购物网站系统为由JAVA语言和JSP技术开发的商业网站,运用了B/S(Browser/Server)技术,具有跨平台的特性。本系统采用Browser/Web/Database是管理信息系

14、统的三层体系结构,在这种体系结构里,客户端的浏览器程序不直接访问位于服务器上的后台数据库,而是通过位于中间层的Web服务器或支持Web的应用服务器访问数据库3。因此,系统对于客户端的要求不高,而服务器端则要求安装某些必需软件。具体配置如下: 客户端软件环境要求: 安装web浏览器 安装有图片编辑软件 安装Adobe Flash IE插件 服务器端软件环境要求: Windows Server2003或Windows Server2008操作系统 安装有MySQL和SQLServer 2005数据库系统 安装有SQL Server Management Studio数据库管理软件 安装有MySQL

15、 Administrator和Navicat数据库管理软件 安装有J2SE 6.23版JDK开发工具包 安装有Apache WEB服务器Tomcat 6.02.1.2 系统硬件环境 系统对于客户端的硬件环境也不高,但是服务器的性能一定要稳定。具体基本配置如下: 客户端硬件环境配置: CPU:奔腾 1.2 GHz 内存:256MB 硬盘:40GB 服务器端硬件环境配置: CPU:至强 Xeon 3.6 GHz 内存:8GB 硬盘:2TB2.2 系统开发平台2.2.1 开发语言环境 该网上购物系统是用JAVA语言开发的在线商务系统。Java是一种跨平台的语言,可以在不同的操作系统环境中运行,只要有

16、java解释器和浏览器就可以运行,java是面向对象编程中的一种经典语言2。2.2.2 开发所需工具简介 J2SE开发人员工具包JDK简介 J2SE开发人员工具集是SUN公司为JAVA程序开发人员提供的基础工具集,它封装了许多基础JAVA类库,并且提供了JVM,java程序的运行是在JAVA虚拟机中运行,在客户端通过java解释器来显示信息。 Tomcat 简介 Tomcat 是 Apache Group 在 Sun 的 JSWDK 基础上开发的可直接提供 Web 服务,并且支持 Servlet 的web服务器,是 Sun 官方推荐的 servlet 和 jsp 容器。Tomcat服务器是完全

17、的开源服务器,完全免费,有着非常广泛的应用10。 MyEclipse 简介 MyEclipse 是由 Genuitec 发布的 eclipse 插件,同时也是一款功能强大的 J2EE集成开发环境,支持代码编写、配置、测试以及除错。MyEclipse提供了许多非常有价值的jar插件,给开发人员提供了很大便利。 PowerDesigner 简介 PowerDesigner模型设计工具是SyBase公司开的一个建模工具,它可以用于数据库模型设计,并且兼容几十种不同厂商的数据库产品,并且可以自动转换为SQL脚本语言,直接在数据库中运行即可,用户使用时只需要建立正确的数据库模型即可。除此之外,Power

18、Designer还可以用来建立其他模型,如用例图,状态图,类图等。还可以用来画时序图,活动图等,并且可以用来生成JAVA源文件7。2.2.3 开发所用到的技术简介 MVC思想 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务8。 视图是用户看到并与之交互的界面。在新式的Web应用程序中,JSP开始在 视图中扮演着重要的角色,但一些新的技术已层出不穷。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。控制器接受用户的输入并调用模型和视图去完成用户的需求。 MVC的处理过程,首

19、先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用视图格式化模型返回的数据,并呈现给用户。如图2-1所示:视 图提供了用户界面,将用户输入数据传递给控制器或将模型数据显示给用户控 制 器连接了模型和视图,判断请求交给哪个模型,调用视图显示模型处理用户请求结果模 型封装了用户数据和处理数据的业务逻辑状态查询状态改变选 择 视 图用 户 请 求业务请求图2-1 MVC架构模型JSP技术JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,该技术为创建显示

20、动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP技术的优势一次编写,到处运行,并且系统的多平台支持。JSP还有强大的可伸缩性,被多样化和功能强大的开发工具支持。 Servlet技术Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。除了Java Servlet API,Servlet还可以用于扩展和添加到API的Java类软件包。它最常见的用途是扩展Web服务器,提供非常安全的、可移植的、易于使用

21、的CGI替代品。它是一种动态加载的模块,为来自Web服务器的请求提供服务。它完全运行在Java虚拟机上14。由于它在服务器端运行,因此它不依赖于浏览器的兼容性。2.2.4 开发所需插件 由于本系统是在eclipse中小组开发,因此用到了CVS开发jar包,还用到了servlet-api.jar,mysql-jdbc.jar,commons-fileupload.jar等jar包,分别用于服务器与后台的连接,后台与数据库的连接,文件上传功能。3 系统可行性研究和需求分析3.1 系统可行性分析3.1.1 市场可行性分析 随着信息化时代的加快,效率高、功能强的电子商务网站越来越受到欢迎,电子商务是新

22、型商务模式的典型代表,打破了地域的局限性,即使您身处北极,只要能上网,照样可以通过电子商务进行交易。21世纪是电子商务蓬勃发展的实际,电子商务的市场份额只能是越来越大,市场上有很大的可行性。3.1.2 技术可行性分析 该系统基于web,采用现在非常流行的Servlet&JSP技术实现。数据库用的Mysql数据库。实现起来简单,方便,易于操作。整体上与数据库之间的操作用的是数据库连接池,页面显示部分用的是struts提供的一些标签。整体技术难度适中,完全有能力完成整个开发过程,技术上有可行性。 3.1.3 时间可行性分析 从系统立项到项目开发完毕,有充足的时间来查阅文档,解决开发过程中遇到的问题

23、,并且有项目完成前,有充足的时间来调试系统,完全具有时间上的可行性。3.1.4 成本收益的可行性分析信息系统的开发过程中,最大的成本是人力成本,而人力成本在该项目开发中恰恰是最小的成本,相反,时间成本成了最大的成本。物力成本上,开发工具完全免费,不需要额外原材料,物力成本几乎为零。这是个付出就有回报的过程,对于软件开发的基本流程的进一步熟悉,对于基本知识的进一步巩固就是整个系统开发的最大收益,也是最终的目的,因此该系统完全是非常有价值的一次尝试。3.1.5 系统后续开发和维护的可行性 该系统基于JSP Servlet技术开发,整个过程脉络清晰。在整个开发过程中,保存了大量的文档及源码备份,随时

24、可以为系统的再次开发提供强力的帮助。信息系统更新速度非常快,如果不持续更新而固守陈旧,那么就会被时代所淘汰。该系统的开发正是基于这种思考,在开发过程中,尽量的降低整个系统的耦合度,业务逻辑放在实现类中去实现,使得系统中所建立的模型相互之间耦合度很低,非常利于后续开发和代码复用。3.2 系统需求分析3.2.1 系统架构设计本系统采用 B/S(Browser/Server)模式体系结构。B/S 模式结构,是 WEB 兴起后的一种网络结构模式。其统一了客户端,将系统功能实现的核心部分集中到服务器,从而简化系统的开发、维护和使用。B/S 结构采用星形拓扑结构建立企业内部通信网络或利用 Internet

25、 虚拟专网(VPN)。前者安全、快捷、准确;后者有节省投资、跨地域广等优点。在本系统的设计中,要使用MVC模式,将前台视图,后台和数据库以及中间层分离开来。在编码过程中要在不同的包中分别:建立模型,实现模型,Servlet连接,数据库连接类和过滤器。系统的实现方式如图3-1所示:图3-1系统结构流程图通过上图,可以很清晰的看到本系统的整体架构,通过将不同的功能模块分离开来,利用Servlet容器和配置文件来实现用户请求的选择和调度,大大降低了不同模块间的耦合度,增强了代码重用度和健壮性。3.2.2 用户和管理员的功能需求3.2.2.1 功能模块划分该网上购物系统从面向的用户种类上分共分两个部分

26、:一部分是商城会员,包括:顾客在线注册、购物、提交订单、付款等操作;另一部分是商城管理员,这部分的内容包括:产品的添加、删除、查询、订单的管理、操作员的管理、注册用户的管理等。 从模块上划分可分为:前台模块和后台模块两大部分。 图3-2显示出前台和后台部分分别要实现的功能模块。图3-2 前台与后台模块功能 状态图 在该系统中,前台模块与后台模块是独立的两个模块,分别对应不同的功能模块,由不同的JSP页面来完成页面的功能控制。3.2.2.2 用户模块的功能划分 (1) 注册功能。顾客首先要注册为网上商城的用户。注册时只要填写登录用户名、密码、联系电子信箱3项信息即可。注册后,用户可继续如实填写详

27、细个人信息及收货人信息,同时可修改密码、查询及修改订单。 (2) 选择产品功能。顾客浏览网上商城,将自己需求的产品放入到购物车中(可在网上商城首页、专柜首页、产品小类、专卖店首页、搜索结果页面、产品详细信息页面进行该操作),可连续添加商品。 (3) 管理购物车。顾客选择完商品后可进入购物车页面,查看自己要购买的商品,可修改某一商品数量、取消购买某商品和清空整个购物车。 (4) 订单功能。顾客确定购物车中的商品后提交订单,如顾客已填写收货人信息,则页面显示该信息并由顾客确认。如尚未填写则显示相应表单请其填写,系统记录顾客提交的收货人信息以便其下次购物时使用。顾客提交订单后可在网上商城查询该订单,

28、并可对尚未处理的订单进行取消、修改等操作。 (5) 付款功能。顾客提交的订单被确认后,要选择付款方式,在付款之后,管理员更改其状态并选择发货。3.2.2.3 管理员模块的功能划分 (1) 管理用户信息功能。负责用户信息的监控和删除,并有冻结不良用户的功能,但不能更改用户信息。 (2) 管理订单功能。管理员可以查询并查看订单,并可以批量查询未处理的订单,并且有更改订单状态的功能。 (3) 管理商品功能。管理员可以添加、修改、删除商品。 (4) 留言管理功能。管理员可以查看和评论留言,并能删除不良留言。 (5) 广告管理功能。可以在前台设置友情链接,并且可以添加广告。3.2.3 性能需求3.2.3

29、.1 对数据精确度的要求 对于商品价格和用户存款的数据要使用BigDecimal类来管理,防止出现因为精度问题而无法购买商品的情况出现。 与CASH有关的数据在数据库中的存储也要保留2位小数。并且要保证在整个系统运行过程中,精确度不能出现丢失和改变。3.2.3.2 对系统易用性、可移植性、健壮性的要求易用性:整个购物系统要简单易用,用户容易上手并且能很容易的找到用户想找的功能模块。购物流程要明白,公告和通知位置显眼,能被用户看到,产品图片要清晰,产品信息描述要准确。可移植性:整个购物系统能符合服务器平台的需要,可以保证在集群服务器上,在不同的服务器环境中都可以顺利运行。健壮性:系统要具有较强的

30、适应能力,能承受住较多用户同时访问的需要,并且系统的相关文档要保留完整,源码标注清晰,结构合理,便于后续的开发和维护。4 系统概要设计4.1 系统总体功能流程图系统总体分为前台模块和后台模块两个部分。图4-1描述前台模块的整体流程:图4-1 购物系统前台模块流程图图4-2描述的是后台模块的整体流程:图4-2 购物系统后台模块流程图4.2 系统数据库设计数据库的设计非常重要,直接关系着系统的整体稳定性。数据库的设计过程中要参照以下规范:1. 数据库表设计时,表名称要采用英文单词+下划线+tb的形式。采用这种命名方式的含义是:user_tb用户表。表达意思简单明确。2. 表中字段的命名方式采用表名

31、称缩写+下划线+英文单词的形式。采用这种命名方式的含义是:u_name用户名称 u_truename用户真实姓名。3. 数据库设计主要要划分为四个核心模块:用户,管理员,商品,订单。表的设计要结构清晰、有条理,还要高效。具体设计为以下14张表,存储内容如下所示: 用户表:用户ID,用户等级ID,用户名,密码,真实姓名,邮箱,性别,年龄,地址,电话,消费额,密码问题。 收藏表:用户ID,商品ID,收藏时间,收藏地址。 用户等级折扣表:等级折扣表ID,等级名称,消费额,折扣。 订单表:订单ID,用户ID,订单号,品种数,地址,收件人,订单日期,联系电话,说明,货物位置。 订单详细表:订单详细ID,

32、订单ID,商品ID,商品数量,价格。 商品表:商品ID,品牌ID,名称,价格,图片名称,上架时间,简介,库存,成交量,点击量。 品牌表:品牌ID,品牌名,品牌编号,状态。 商品种类:编号,总分类ID,类别名称,状态。 商品总分类:总分类ID,分类名称,状态。 管理员表:管理员ID,用户名,密码,类型。 留言表:用户ID,留言内容,留言时间。 留言回复表:留言表ID,管理员ID,回复留言内容,回复时间。 商品评价表:商品评价ID,商品ID,用户ID,评价内容,评价时间。 打折表:打折ID,消费金额起点,折扣。数据库的外键设计: 可以通过订单表查看用户信息和商品信息。 可以根据留言回复表查看到管理

33、员信息和用户留言信息。 可以通过用户等级折扣表查看打折水平。 可以通过商品表查询到商品小分类和总分类。4.3 系统页面和模块设计系统的页面包括前台部分和后台部分,前台部分包括前台商品部分和用户部分,通过JSP页面来实现系统的功能。商品部分:404.jsp 作用:提示请求页面没有找到。 405.jsp 作用:提示服务器繁忙。 goodsdetailssub.jsp 作用:商品详细信息描述。 goodsdisplay.jsp 作用:前台商品展示。 register.jsp 作用:用户注册页面。 top.jsp 作用:嵌入frame.jsp中,为首页面的顶部描述。 bottom.jsp 作用:嵌入f

34、rame.jsp中,为首页面的底部说明。用户部分:collectshow.jsp 作用:显示会员的收藏夹。 gouwuche.jsp 作用:显示用户的购物车信息。 Memberinfo.jsp 作用:会员信息。 userReplymessage.jsp 作用:显示管理员回复信息。后台部分:Error.jsp 作用:登录错误跳转页面。 Login.jsp 作用:登录页面。 Menu.jsp 作用:左侧菜单页面。 Newadd.jsp 作用:增加管理员。 Showgoods.jsp 作用:商品检索页面。 Lookorder.jsp 作用:订单查看页面。 Goodsadd.jsp 作用:增加商品页面

35、。5 总体设计与实现5.1 数据库设计与实现5.1.1 数据库表设计根据4.2中对数据库设计的要求,在该系统中建立了14张表,定义了14个外键约束,用PowerDesigner设计数据库模型如图5-1所示:图5-1 PowerDesigner设计数据库表和外键关系 根据数据库设计要求,数据库设计中一共要建表14张,分别为: 商品表 品牌表 商品种类 商品总分类 商品评价 用户表 收藏表 用户登记表 留言表 订单表 订单详细表 管理员表 回复留言表 打折表 在数据库的设计中,通过以上14张表存放商城商品和交易信息。14张表主要分为用户部分,订单部分,商品部分,和管理员部分4大块。通过外键约束实现

36、了对于不同表的相互关联和约束。例如:收藏表作为从表,外键关联于商品表和用户信息表,通过设置外键用户id可以得到某用户信息,通过设置外键商品id可以查询到用户收藏的商品信息,而且在外部发出更新和删除请求时,通过设置CASCADE级联删除,可以强制更新商品信息。注:关于该系统数据库创建的SQL脚本和模型均存放在附录中。脚本为MySQL版和SQLServer版共两份。5.1.2 数据库的约束与关系 在该系统数据库中,共定义了14个外键约束。主要的外键关系如下:u 订单表 user_id 关联 用户表 user_id;u 收藏表 user_id 关联 用户表 user_id;u 订单详细表 o_id

37、关联 订单表 o_id;u 商品表 g_id 关联 品牌表 g_id;u 品牌表 t1_id 关联 商品种类表 t1_id;u 回复留言表 m_id 关联管理员表 m_id; 以上外间关系中各字段名称注释如下:user_id表示用户ID,o_id表示订单ID,g_id表示商品ID,t1_id表示商品种类ID,m_id表示管理员ID。 其他字段详细描述请参照附录中数据库表与字段注释。5.2 系统主要功能的设计与实现5.2.1 数据库连接池类与数据库工厂类简介5.2.1.1 DBConnectionPool类详解 DBConnectionPool类是本项目中的数据库连接池类,是按照线程创建和调度的

38、思路创建一个数据库连接池,通过泛型队列 Vector 来创建一个固定连接数的连接池,系统发送出连接数据库的请求时,通过调用该类中的getConnection()方法来释放一个连接,同时在队列中减去1,从而实现了对连接数的控制,并且极大的提高了数据库的访问效率。 DBFactory类是本项目中的数据库工厂类。它实现了DBConnectionPool中的getConnection() 方法,当外部类调用时将 它封装了一些对数据库进行SQL操作的方法,供外部类来实现对数据库的访问。例如:外部类要执行数据库查询,它只需通过调用executeQuery(sql)方法,传进SQL语句作为参数即可返回Res

39、ultSet结果集,然后在结果集中检索即可。同理,外部类执行数据库插入和删除操作,它只需要调用executeOperate(sql) 方法,传进SQL语句作为参数即可返回ResultSet结果集,查询完毕后要释放资源时,通过调用DBConnectionPool的release()方法来释放资源。 DBConnectionPool 类和 DBFactory类工作方式如图5-2所示: 图5-2 UserImpl与GoodsImpl操纵数据库 类图DBConnectionPool类的具体实现方式(核心代码):/返回当前连接池的一个对象public static DBConnectionPool ge

40、tInstance() if (null = instance) instance = new DBConnectionPool();return instance;通过getInstance()方法获取一个DBConnectionPool类实例/获取连接池中的一个连接 public synchronized Connection getConnection() if (pool.size() 0) conn = pool.get(0);/ 获取连接pool.remove(conn);/ 将连接从连接池中移除return conn;通过getConnection()方法返回一个数据库连接/ 释

41、放连接public synchronized void release(Connection conn) pool.add(conn);通过release()方法释放数据库连接以下简要介绍 Java与数据库建立连接的实现方式:/初始化连接池、读取配置文件(存放着数据库连接信息)private void init() pool = new Vector(poolSize);/ 初始化连接池/在连接池中添加连接private void addConnection() Connection conn = null;Class.forName(driver); for (int i = 0; i po

42、olSize; i+) conn = DriverManager.getConnection(url, username, password);pool.add(conn);/读取配置文件private void readConfig() Properties prop = new Properties();/ 定义一个属性实例prop.load(pool.properties);/ 加载属性文件this.setDriver(prop.getProperty(driver); 在创建连接池时,用到的JAVA Collection 为Vector,Vector可以实现动态数组,并且是线程安全的,

43、非常适合与创建数据库连接池。 以上核心代码可以分解为如下的过程:数据库连接池类被JVM加载时,先执行了类的默认构造函数。我在构造函数中调用了init()初始化方法,类的初始化包括读取配置文件和初始化连接池和添加连接3个方法即new Vector(poolSize)、readConfig()、addConnection()这三个方法,通过这三个方法,可以满足数据库连接池创建的基本条件。在该系统中只是实现了数据库连接池的基本功能,线程池还要具备线程休眠和用户连接过载时自动添加额定数量的连接的技术,来控制连接安全。通过自动添加固定的连接数,可以实现连接池的自动控制,从而避免了连接过载导致系统崩溃的情

44、况发生。 连接池的基本工作原理如图5-3所示:图5-3 连接池的基本工作原理数据库连接池这种设计模式属于应用共享资源的开发中非常著名的一种设计模式:资源池(Resource Pool)。该模式正式为了解决资源的频繁分配、释放所造成的一系列问题而设计的。这种模式通过设定连接池的最大连接数来防止系统无控制的与数据库系统的连接,减小了数据库系统因过载而崩溃的可能,大大提高了对系统与数据库连接控制的灵活性。数据库连接池在高效性和稳定性上也具有极大的优势。例:在eclipse中新建两个类DBTest.java和DBPoolTest.java 在DBTest中,利用for循环控制类与数据库建立1000次连接,同样,在DBPoolTest中通过for循环,利用线程池与数据库建立1000次连接。图5-4是类运行结果的截图:图5-4 两种连接方式的比较 从图5-4可以很明显地看出,当并发连接数为1000时,用传统方式连接的DBTest类已经崩溃,抛出“连接异常,端口被占用”的异常,而利用数据库连接池的DBPoolTest类建立1000次连接仅耗时422毫秒。 下面进行一次连接数为百万次的测试。 把连接数改成1000000次,由于第一个类在1000次连接已经

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com