毕业论文范文——网上购物系统_第1页
毕业论文范文——网上购物系统_第2页
毕业论文范文——网上购物系统_第3页
毕业论文范文——网上购物系统_第4页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学现代远程(继续)教育学院毕业设计(论文)摘要近些年,随着计算机技术不断地进步,电子商务获得了快速地发展,而网上购物作为电子商务一个重要的组成部分,同样取得火爆地发展局面。电子商务的开展为社会资源的合理配置以及循环利用起到了不可忽视的作用。目前大多数电子商务系统都是采用结构化的分析和设计实现的,这样不免在代码的复用性和可读性方面有不足,而且全部的功能都是在服务器端实现的,在性能和用户体验方面也有欠缺。本系统采用了面向对象的分析和设计,整体上采用了三层架构的设计方式,并结合了Ajax技术在客户端实现部分逻辑,使用了ADO.NET进行数据访问,大大改善了代码的重用性和可读性并改善了用户体验和系统性能,而且简化了系统的开发。关键词:电子商务,三层架构,面向对象ABSTRACTWith the computer technology constantly advancing, Electronic commerce has had a rapid development over the past few years. And so does online shopping, which plays a key role in distributing reasonably and recycling the resource of community as an important segment of electronic commerce.At present, most of Systems are implemented with structural style design and analyse which cause lack in codes reusability and readability unavoidably. Besides, because all their functions are implemented in server side, so they also cause lack in the aspect of Users experience and performance. On the contray, this system applys both of three layer architecture on the whole and Object-Oriented analysis and design, combining Ajax and using as data access layer to realize some logic in the client side. All of these points improve the codes reusability and readability, the users experience and the performance of system, while simplifying the development of system.Key Words: Electronic Commerce,three layer architecture,OO目录第一章 概述11.1 系统的研究背景和意义11.2 需求分析31.2.1 需求说明31.2.2 用例说明41.2.3用例图4第二章 系统的开发环境62.1开发工具和平台介绍62.2开发技术介绍11第三章 系统总体设计133.1系统功能结构133.2系统的业务流程133.3系统的分层设计143.4系统的组织构建设计153.5 各层之间的依赖关系173.6 抽象工厂和反射实现对数据访问层的依赖注入173.7系统的类模型183.8系统的数据库设计21第四章 详细设计和实现294.1 用户注册和实现294.2 用户登录和安全验证304.3 购物车功能实现324.4 定单功能实现344.5 商品分类模块的设计和实现354.6 商品管理模块的设计和实现354.7 评分模块的设计和实现394.8 留言本模块的设计和实现40第五章 系统演示与测试425.1 Div+Css布局425.2程序运行效果435.3系统测试49总结53致谢54参考文献55附录5679第一章 概述1.1系统的研究背景和意义电子商务源于英文ELECTRONICCOMMERCE,简写为EC。顾名思义,其内容包含两方面,一是电子方式,二是商贸活动。一般来说是指利用电子信息网络等电子化手段进行的商务活动,是指商务活动的电子化、网络化。广义而言,电子商务还包括政府机构、企事业单位各种内部业务的电子化。电子商务可被看作是一种现代化的商业和行政作业方法,这种方法通过改善产品和服务质量、提高服务传递速度,满足政府组织、厂商和消费者的降低成本的需求,并通过计算机网络加快信息交流以支持决策。电子商务可以包括通过电子方式进行的各项社会活动。随着信息技术的发展,电子商务的内涵和外延也在不断充实和扩展,并不断被赋予新的含义,开拓出更广阔的应用空间。在全球信息化浪潮正迅猛推进的今天,电子商务作为一个新兴的事物,作为一种更快捷、准确的交易形式,在世界范围内全面开展,并且渗透到人们生活的各个领域.二十一世纪是信息化的时代,第三产业在各国的比重不断上升,特别是服务业,信息服务业成为21世纪的主导产业,这导致了电子商务的产生和发展,在全球信息化大势所驱的影响下,各国的电子商务不断的改进和完善,电子商务成为各个国家和各大公司争夺的焦点。研究探讨电子商务现状和制定实施恰当的电子商务的政策问题就十分迫切。而在我国,计算机与网络技术的普及与发展,电子商务迅速崛起,众多的信息技术企业、风险投资公司、生产流通企业纷纷开展电子商务。电子商务发展在世界范围内都是刚刚开始,其发展速度极为迅速,传统的商业模式正不断地被新的商业模式所代替,无论什么模式都不具有固定性和成熟性。对于任何国家来说,都有一个探索与创新的问题,这也为我国加快和跨越发展提供了难得的机遇。我们要大胆进行创新,积极探索符合实际的商业模式,壮大企业的市场竞争能力,以适应全球化的激烈竞争。我国发展电子商务,要根据我国目前的商务需求、技术手段和经济环境实际,制订发展电子商务的规划和计划,确定切实可行的商务模式,设计和开发实用有效的技术解决方案,在现有条件下最大限度地推动企业管理水平和经营效益的提高;另一方面,要着眼未来的发展需求和趋势,以世界眼光和战略思维,推出创新的电子商务体系,能够跨越的大胆跨越,以适应全球电子商务发展的需要。 我国未完成工业化就开始进行信息化,面临工业化和信息化同时发展的双重任务,这与已经完成工业化并步入信息社会的发达国家有很大不同。这既是一个严峻的挑战,也为我们发挥后发优势,实现跨越式发展提供了可能和机遇。首先,信息技术和信息网络的开放性、易用性保证其具有广泛的适用性,多样化的信息传递方式提高信息服务平台,使几乎所有企业都可以发展不同层次的电子商务;其次,电子商务可以促进粗放经济向集约经济的转变,转换经济的增长方式,扩大经济规模,提高经济质量。因此,我们要主动抓住机遇和迎接挑战,按照跨越式发展的思路,加快推进电子商务的发展,实现中央提出的“以信息化带动工业化,实现生产力跨越式发展”的战略目标。 发展电子商务涉及各行业各领域,是一项宏大的系统工程,有时非技术因素比技术因素还重要,只有把方方面面的力量调动起来,才能从整体上推动电子商务发展。这需要政府的鼓励、引导和协调。政府通过制订政策法规,从网络基础设施建设、与电子商务相关的技术发展和技术标准、税收、市场准入等方面着手,为电子商务创造良好的宽松的经营环境,引导企业和公众积极参与电子商务。同时电子商务属于民商活动,政府的干预应是最低限度的,以免由于政府的过度干预而阻碍电子商务的发展。要发挥市场机制作用,确定企业在电子商务中的主体地位,发动企业和社会投入电子商务,鼓励大中企业与民营企业积极参与企业信息化和电子商务建设。 发挥政府在统筹规划、统一标准、产业引导、市场监管和环境支持等方面的职能作用。既要考虑区域的统筹规划,也要考虑领域的统筹规划,保证区域和领域之间的互联互通与资源共享,体现各地区各领域的特色,避免重复投资和重复建设。我国地区经济发展的不平衡和城乡二元结构所反映出来的经济发展的阶梯性、收入结构的层次性十分明显。这就需要分层次推进,创造适合不同信息化基础环境和不同用户的电子商务商业模式和配套的技术实现模式。就目前技术看,电子商务商业模式经历了三个技术代:第一代是企业注册域名,形成以企业与产品简介为内容的网站;第二代是企业将因特网服务器与后端系统连接起来,使客户能够在网上发送并跟踪订单;第三代是企业通过电子化形式将客户及供应商信息全部实时地管理起来,任何需求与供应的变化都迅速地传递给供应链中的其他环节,从而促使货物和服务能够更高效地流通和实施。我国企业的差别非常大,要根据不同情况,选择不同发展阶段的模式。 电子商务在全世界也只有几年时间,而且正以难以想象的速度发展,加上我国经济发展和信息化水平差别很大,确定我国电子商务发展模式是十分困难的,我们要以积极发展和开拓进取的态度,积极探索适合我国实际的电子商务发展道路。开展电子商务有得天独厚的优势,Internet的发展更让我认识到了开展电子商务的优势。我认为电子商务系统会给社会带来极大的利益,在设计和实现的过程中,可以采取调查问卷的形式,找出最佳的方案,考虑多方面的利益和因素,建立一个安全可行,功能强大,易于升级和操作方便的电子商务交易平台。电子商务最严峻的问题便是安全问题,目前我还在考虑交易的方式,要不要采取网上付款的途径。针对用户的需要,提供优质的服务,电子商务系统可以提供多方面的服务,满足人们学习、生活所需。另外,可以加强宣传教育,改变传统观念,传统的消费还是占有主导的地位,要让用户都接受电子商务系统需要不断宣传教育,改变传统观念,也是改变一种生活方式。1.2需求分析1.2.1需求说明本系统统是一个基于bs结构的网上购物系统,它用来给用户提供一个方便快捷的购物平台,利用本系统普通注册用户可以查看购物网上的商品信息,填写个人信息,从而根据需要进行有选择的购物,在网络上实现订货。为了更好的服务于用户,系统还设计了商城推荐模块,根据商品销量进行排序显示。最后用户还可以对商品进行评分和留言,以便可以提供更好的服务。管理员可以对商品信息进行管理,对注册用户进行管理,对用户订单进行管理,根据用户的评分及留言,提高服务质量。1.2.2用例说明(1) 用户注册:用户要购物首先要注册一个帐号,按系统要求填写详细的信息,包括邮箱、昵称、登录密码、验证码。(2) 管理注册用户信息:管理员登录后可以查看用户注册信息。(3) 网上购物:用户登录后,选购需要的商品,填写地址、收货人名称、电话等联系信息,如有特殊要求可以填写订单备注。(4) 管理购物车:管理员登录后可以查看注册用户的购物信息,然后再订单管理中对订单进行相应处理。(5) 商城推荐:系统根据销量排序显示前15个商品。(6) 商品分类管理:管理员登录后,可以增删查改分类信息。(7) 商品品牌管理:管理员登录后,可以增删查改品牌信息。(8) 商品信息管理:管理员登录后,可以增删查改商品信息。(9) 用户留言:用户登录后,可以对商品或者服务进行评论。(10)用户评分:用户登录后,可以对已购买 并且未评分的商品的进行评分操作。1.2.3用例图网上购物系统分为前台、后台,前台为用户提供了用户注册、在线购物、留言、评分以及修改个人信息等功能。后台只允许管理员登录,为管理员提供了商品管理、商品分类信息、商品品牌信息、管理注册用户信息、处理订单等功能,如图1-1所示。图1-1 系统用例图第二章 系统的开发环境2.1开发工具和平台介绍本系统采用了基于.net平台的A 3.5框架。使用到了Ajax和 Jquery作为javascript类库。通过ADO.NET进行数据的访问。开发工具主要是Visual Studio 2008。数据库使用的是SQL Server 2005。1.Visual Studio开发平台简介Visual Studio.NET 提供了一些激动人心且极具创新的企业生存期功能,包括: (1) 领先于业界的数据库工具 (2)强健而灵活的软件建模 (3)高效的体系结构指导 (4)关键测试功能(5)集成的源代码控制(6)领先于业界的数据库工具(7)综合数据库开发功能(8)数据库建模功能包括概念工具、逻辑工具和实体设计工具,以及对使用存储过程、索引、视图等等(涵盖企业数据库开发的各个方面)的集成支持。(9)适用于行业专家的概念性工具(10)概念性建模工具通过基于事实的对象角色建模方法,将行业领域的专家知识引入应用程序设计过程。主要优点:应用程序可体现行业需求,而这些需求是由最了解它们的个别专家定义的,因而使工程更加完美。(11)用于逻辑数据库设计的业界标准模型(包括 ER 和 IDEF1X 图表)具有对以下数据库的完全往返工程功能:Microsoft SQL Server、DB2、Oracle 以及 Microsoft Access 数据库;从而使在任何层次(概念、逻辑或实体层次)进行的更改都可自动反映在其他层次中。(12)UML 支持完全支持业界标准统一建模语言 (Unified Modeling Language, UML) 1.2 图表符号,从而为用 Visual Studio.NET 创建的模型提供了通用的元模型。这样,在一张图表中所进行的更改就可反映在所有其他的图表中。(13)错误检查强大的语义错误检查功能简化了创建完全兼容模型的过程。(14)分析报告多种标准报告可对模型进行高效且直观地分析。(15)自由格式的图表应用程序设计人员可将自由格式的图表加入 UML 图表中,从而更好地表达其体系结构和规划。主要优点:客户可使用业界标准方法来表达应用程序的体系结构和功能,提高开发团队的效率。(16)企业框架和模板Visual Studio.NET 企业框架和模板提供了关键的基础结构和内容,以在组织内部定义和提供最好的惯例和开发策略。这允许高级开发人员和体系结构工程师定义应用程序初始工具包、策略以及体系结构指导,使经验不足的开发人员可以用来构建极其复杂的应用程序。客户可分发这些应用程序蓝图以及构建应用程序所需的部件和说明,从而极大地提高开发人员构建复杂 XML Web 服务和应用程序的效率。 模板提供了用于完成应用程序的应用程序起点和策略或指导方针。它们包含两个部分:a 初始工程结构和策略定义文件:工程结构是在新的 Visual Studio.NET 工程类型中指定的,客户可任意对该类型进行自定义和扩展;b 策略文件是用一种新的基于 XML 的语言定义的,该语言称为模板说明语言 (Template Description Language,TDL)。TDL 用于指定在工程的各个阶段使用哪些技术合适。TDL 还提供对属性设置的精密控制。(17)测试功能内置的功能,用于性能、负载以及功能测试,可帮助客户在开发的早期阶段就找出其 XML Web 服务和应用程序中的问题。(18)存根页存根页是为 Visual Studio.NET 构建的任何 XML Web 服务而创建的。可便捷地对存根页进行测试,测试内容包括性能、负载以及功能 所有这一切都包含在 IDE 中。(19)自动化通过使用 Visual Studio.NET 自动化模型,客户可自动执行测试过程,以提高效率。(20)回归测试可便捷地在定期的版本上执行,这样可帮助确保已修正的错误不会再重新引入。(21)分析瓶颈Visual Studio Analyzer (VSA) 使客户能够以图形化方式分析基于分布式组件的应用程序,以便查找瓶颈。(22)集成的源代码控制版本控制:Microsoft Visual SourceSafe (VSS) 是领先于业界的版本控制系统,允许开发团队安全共享应用程序源代码、设计文档以及其他工程资源。(23)跟踪更改未签入窗口功能用于跟踪开发人员对已签出文件的更改,使这些更改在签入以供他人使用之前就可被找到。(24)并行开发丰富的分支功能支持并行开发,允许多个团队同时开发一个应用程序的多个版本,从而提高了整体的效率。2 .NET Framework开发框架简介NET Framework 是微软的几个开发团队一起努力发展的成果,最主要用来产生一个可以用来快速开发、部署网站服务及应用程序的开发平台。这个架构是两个项目的结果:第一个项目的目的是用来改善Windows 作业平台上的程序开发,特别是改善COM(Component Object Model,组件对象模块。一种微软所制定的软件技术;让对象的功能可以被其它软件所叫用,可以让组件重复使用、容易更新及维护);第二个项目则是制作一个以发展服务(Service)软件为目标的开发平台。这两个项目团队多年前就已经在一起工作,他们希望可以发展出一种可以快速开发出以因特网为基础,而且易学易用的开发平台。.Net Framework 在设计时有下列特色:(1)透过因特网的标准做整合以XML(eXtensible Markup Language,延伸标注语言)及SOAP(Simple Object AccessProtocol,简单对象存取协议)等标准通讯协议,将各种由不同环境所组成的应用程序及组件整合在一起工作。(2)松散的整合组件大多数具延展能力(可扩充功能)的系统,现阶段是以异步讯息为架构而建立的。要建立这种多层的架构非常复杂,而且工具很少。.NET Framework 不需要很严谨的定义每个组件的结构即可很轻松的整合,这样可提高程序的延展性。(3)支持多种程序语言许多程序设计师会使用多种语言来开发他们的解决方案,这是因为每种语言都有它的长处。例如某些语言对于数值计算效率较好,某些语言对于数据库的操作较为方便,而某些语言又有大量的链接库可供使用;所以没有办法强迫别人只学一种程序语言。.NET Framework 把这些语言整合起来,可以让开发人员使用不同的程序语言来开发解决方案,让程序设计师可以选择他们专长的程序语言,企业则可省去重新训练员工的成本。(4)提高程序设计师的生产力现今程序设计师人才非常缺乏,程序设计师在人力不足的情形之下就必需提高生产力,因为每个项目的时程很可能很急促;况且公司也希望赶快结案好再进行下一个项目。正因如此,.NETFramework 的开发团队希望尽可能减少写程序会发生的问题,让程序设计师专心于撰写企业法则(企业处理数据的规则)。所以.NET Framework 有些节省时间的特色,例如容易使用的自动交易机制、自动内存管理,以及丰富的控件。(5)完善的数据保全目前因特网最受大家注目的,就是它的安全性。要设计一个安全性完善的因特网应用程序,在设计时就必须考虑所有组件的保全设计,而不能仅做一部分而已。.NET Framework 在设计安全模型时时即考虑到这点,将所有的数据与程序代码做完善的安全防护。(6)可用操作系统的服务Windows 提供了比其它作业平台更丰富的服务及资源,例如众多的数据存取服务、使用系统所提供的整合安全模式来做身分验证及保全的工作、交互式的使用者接口、成熟的对象模块、交易程序监视以及讯息队列服务。.NET Framework 当然也将这些操作系统所提供出来的功能包装起来,以更简单的方式提供程序设计师使用。3. C#语言简介C#是一种面向对象的编程语言,它是微软公司作为Visual Studio中的一部分推出的。C#(发音为“C-Sharp”)既保持了C+中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。C#语言在保持C/C+灵活性的基础上为程序员带来更高效的RAD开发方式。它不仅能用于WEB服务程序的开发,并且还能开发强大的系统级程序。C#语言具有以下优点: (1)简单C#具有C+所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C+的一些功能)有助于简单全方位的学习C#。 (2)面向对象C#支持所有关键的面向对象的概念,如封装、继承和多态性。完整的C#类模式构建在NGWS运行时的虚拟对象系统(VOS,Virtual Object System)的上层,VOS将在下章描述。对象模式只是基础的一部分,不再是编程语言的一部分。 (3)类型安全C#取消了不安全的类型转换,不能把一个整型强制转换成一个引用类型(如对象),而当向下转换时,C#验证这种转换是正确的。(也就是说,派生类真的是从向下转换的那个类派生出来的。)边界检查是C#的一部分。再也不会出现这种情况:当数组实际只定义了n-1个元素,却超额地使用了n个元素。算术运算有可能溢出终值数据类型的范围。C#允许在语句级或应用程序级检测这些运算。在允许检测溢出的情况下,当溢出发生时将会抛出一个异常。 (4)版本可控(Versionable)用C#写组件可以看到看到11,NGWS runtime将对所写的应用程序提供版本支持。C#可以最好地支持版本控制。尽管C#不能确保正确的版本控制,但是它可以为程序员保证版本控制成为可能。有这种支持,一个开发人员就可以确保当他的类库升级时,仍保留着对已存在的客户应用程序的二进制兼容。 (5)兼容C#并没有存在于一个封闭的世界中。它允许使用最先进的NGWS的通用语言规定(Common Language Specification,简写为CLS)访问不同的API。CLS规定了一个标准,用于符合这种标准的语言的内部之间的操作。为了加强CLS的编译,C#编译器检测所有的公共出口编译,并在通不过时列出错误。 (6)灵活尽管C#代码的缺省状态是类型安全的,但是可以声明一些类或者仅声明类的的方法是非安全类型的。这样的声明允许您使用指针、结构,静态地分配数组。安全码和非安全码都运行在同一个管理空间,这样暗示着当从安全码调用非安全码时不会陷入列集(marshaling) 。2.2开发技术介绍1.ADO.NET ADO.NET对 Microsoft SQL Server 和 XML 等数据源以及通过 OLE DB 和 XML 公开的数据源提供一致的访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源,并检索、处理和更新所包含的数据。ADO.NET 通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET 包含用于连接到数据库、执行命令和检索结果的 .NET Framework 数据提供程序。您可以直接处理检索到的结果,或将其放入 ADO.NET DataSet 对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。ADO.NET DataSet 对象也可以独立于 .NET Framework 数据提供程序使用,以管理应用程序本地的数据或源自 XML 的数据。102.Ajax和JqueryAjax是一种的改善web应用程序用户体验的技术。就是在浏览器中能够向后台向服务器发出异步请求,并根据返回内容不刷新页面而更新页面的技术。它是几个老技术的综合应用。包括Javascript、XML、XMLHttpRequest对象、DOM和CSS。Javascript则是将这几种技术粘合在一起的胶水。但是浏览器之间对Javascript、DOM、CSS的支持不一致。给Ajax编程带来了很大的难度。A和Jquery正是一个提供了跨浏览器的Javascript库。它们对Ajax的支持都差不多。但是A由于是微软自己的产品,所以它可以很好的和服务器端的技术集成。比如A提供了客户端访问web服务的内置支持。Jquery 则是一个非常流行的Javascript库。它提供了非常简练操作DOM的功能。提供了非常方便获取DOM节点引用的选择器。选择器类似CSS中的选择器。链式表达式的应用也让代码更加简洁优雅。所以在系统中同时使用了这两个库。A主要用于和服务器端的通信。Jquery用来操作修改界面。相互取长补短。15第三章 系统总体设计3.1系统功能结构根据设计要求,本系统分为前台、后台两部分,前台主要供用户查询商品、注册用户购买商品、维护“我的商城”等相关功能,后台主要供系统管理员使用,包括用户管理模块、订单管理模块、商品管理模块等,功能结构如图3-1所示。图3-1功能结构图3.2系统的业务流程根据用户需求,本系统业务流程的设计充分考虑到系统的易用性,用户进入系统后,可以通过快速查询找到用户需要的商品,并且使用购物车功能,按照系统提示完成信息填写,提交订单进行支付,操作完成后,用户可以进行留言及评分,如图3-2所示。图3-2 系统业务流程图3.3系统的分层设计在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。本系统也采用了这种分层的方式,系统分层架构图如图3-3所示。13图3-3 系统架构图数据访问层:数据访问层主要是对原始数据(存储形式包括数据库或文本文件等)的操作,并为业务逻辑层和表示层提供服务。数据访问层力求高效,并使访问异构数据库成为可能。主要负责数据库的访问。简单的说就是实现对数据表的Select,Insert,Update, Delete的操作。网上购物系统的数据访问层中使用了ADO.NET进行数据访问。业务逻辑层:是对具体功能的规则进行表示和封装,并联接数据访问层和表示层,是整个系统的核心,它与这个系统的业务(领域)有关。如果涉及到数据库的访问,则调用数据访问层。表示层:表示层的主要职责是为用户提供信息以及翻译用户的指令。用户通过用户交互界面,提交用户指令,表示层翻译指令并调用相应的业务逻辑层和数据访问层来实现与系统交互;系统响应的结果也通过表示层来传达给用户。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。网上购物系统中,是利用A来设计的,因此包含了许多Web控件和相关逻辑。3.4系统的组织构建设计网上购物系统划分了三个大的命名空间,分别是Model(包括实体层的内容)、BLL(包括业务逻辑层的内容)和DAL包括了数据访问层的内容。其中BLL包括了系统的主要业务流程,主要是在线购物、推荐以及管理等功能。系统的组织构建图,展示了各部分之间的依赖关系,如图3-4所示。图3-4 系统组织构建图VS解决方案中对应的项目组成,如图3-5所示。图3-5 解决方案图项目介绍 :1. CJN.SHOP.BLL:业务逻辑层,封装并调用数据访问层。2. CJN.SHOP.Common:公共方法,存放常用的公共方法。3. CJN.SHOP.DAL:数据访问层,对数据库的增删改查操作。4. CJN.SHOP.DBUtility:数据公共类,存放数据库相关的公共类。5. CJN.SHOP.Model:实体层。3.5各层之间的依赖关系由于BLL(业务逻辑层)是整个系统的核心部分,所以表示层和数据访问层都应该依赖与BLL层。就是说要实现数据访问层对业务层的依赖倒置,这需要使用分离接口来实现,如图3-6所示。图3-6 各层依赖关系3.6抽象工厂和反射实现对数据访问层的依赖注入业务逻辑层是不依赖数据访问层的,但是业务层还得使用数据访问层来操作数据。既要使用又不能依赖,这就引出了工厂模式。因为不能new关键字来创建数据访问层的具体数据访问对象,所以我们只能从工厂里获得数据访问对象,然后通过IDAL接口来使用数据访问层的DAL对象。 下面给出具体的类图来说明,如图3-7所示。14图3-7 抽象工厂类图为了简单,此网上购物系统并没有按照上面的构件图来实现。3.7系统的类模型上面介绍了系统各层之间的静态和动态的关系。下面介绍下和领域相关的一些内容。主要就是在网上购物系统的类概念。图3-8、图3-9是网上购物系统的类模型。图3-8网上购物系统类模型图3-9网上购物系统类模型下面对各个领域概念一一说明。(1)Admin:管理员信息。(2)Brand:商品品牌信息。(3)Category:商品分类信息。(4)Comment:用户评分信息。(5)Order:订单信息。(6)OrderList:订单明细信息。(7)Product:商品信息。(8)Users:注册用户信息。(9)ProductImage:商品相册信息。(10)GuestBook:用户留言信息。3.8系统的数据库设计数据库的设计和领域模型基本上一一对应。即一个领域类对应一个表。但是处于同一继承结构的领域类只有一个表与之对应。这种方法虽然浪费了些数据库存储空间但是使用起来比较方便。另外多了几个表是用来存储对象之间的关联的表。管理员表,用来存储管理员的信息,如表3-1所示。表3-1 管理员表序号列名数据类型主键允许空说明1Idint是否主键,自动递增2UserNamenvarchar是用户名3PassWordvarchar是密码4Flagvarchar是权限5Typenvarchar是用户类型6LastTimedatetime是最后登录时间7LastIpvarchar是最后登录Ip8CreateTimedatetime是注册时间品牌表,用来管理商品品牌信息,如表3-2所示。表3-2 品牌表序号列名数据类型主键允许空说明1BrandIdint是否主键自动递增2Namenvarchar是品牌名称4Sortint是显示顺序5Remarknvarchar是备注商品分类表,用来划分商品类别,如表3-3所示。表3-3 商品分类表序号列名数据类型主键允许空说明1BrandIdint是否主键自动递增2Namenvarchar是品牌名称4Sortint是显示顺序5Remarknvarchar是备注订单表,用来存储用户订单信息,如表3-4所示。表3-4 订单表序号列名数据类型主键允许空说明1Idint否主键,自动递增2UserIdint否用户Id3OrderNovarchar是否订单号4UserNamenvarchar是用户名5Mobilevarchar是手机6Phonevarchar是固定电话7CityIdvarchar是根据此ID可以得到省市县三级8Addressnvarchar是详细地址9PostCodeint是邮编10PostTypetinyint是配送方式11TotalNumberint是商品总数12TotalPricemoney是总价格13IsStatussmallint是20准备发货,30 发货中,33客户已签收, 订单已完成14Remarknvarchar是备注15CreateTimedatetime否订单时间商品销售表,用来存储订与订单相关联的所有商品信息,如表3-5所示。表3-5 商品销售表序号列名数据类型主键允许空说明1Idnchar是否主键,自动递增2OrderNovarchar否订单号3ProductIdint是产品Id4UserIdint是用户Id5Colorvarchar是颜色6Sizevarchar是尺寸7Amountint是数量8Pricesmallmoney是价格9CreateTimedatetime是销售时间商品表,用来存储商品信息,如表3-6所示。表3-6 商品表序号列名数据类型主键允许空说明1ProductIdint是否主键自动递增2ProNovarchar是产品编号3Namenvarchar是商品名称4ClassIdint是商品分类Id5BrandIdint是品牌Id6Pricesmallmoney是价格7Discountdecimal是最小值0,最大值18ProductShowtinyint是0是新品,1促销9Diggint是产品好评10Aboutnvarchar是产品介绍11Sextinyint是性别12AddTimedatetime是上架时间13ViewCountint是浏览次数用户表,用来存储注册用户信息,如表3-7所示。表3-7 用户表序号列名数据类型主键允许空说明1UserIdint是否主键自动递增2UserNamenvarchar否用户名3PassWordvarchar否用户密码4UserGradeIdint是用户等级5RealNamenvarchar是真是姓名6Sextinyint是性别7Mobilevarchar是手机8Phonevarchar是固定电话9CityIdvarchar是根据此ID可以得到省市县三级10Addressnvarchar是详细地址11PostCodeint是邮编12Integralint是积分13Moneymoney是用户余额14IsStatustinyint否状态,0正常1资料完整2锁定15AddTimedatetime是注册时间16EditTimedatetime是资料修改时间评分表,用来存储用户对所购买商品的评分,如表3-8所示。表3-8 评分表序号列名数据类型主键允许空说明1Idint是否主键自动递增2ProductIdint否否商品编号3UserIdint否否用户编号4Scoresmallint否否评分5CreateTimedatetime否否评分时间留言表,用来存储用户留言信息,如表3-9所示。表3-9留言信息表序号列名数据类型主键允许空说明1Idint是否主键自动递增2ProductIdint否否商品编号3UserIdint否否用户编号4Titlenvarchar否否留言标题5Contentnvarchar否是留言内容6CreateTimedatetime否否留言时间商品相册表,用来存储商品图片信息,如表3-10所示。表3-10商品图片表序号列名数据类型主键允许空说明1Idint是否主键自动递增2Namevarchar否否图片名称3ProductIdint否否商品编号4Img1varchar否否小图(100x100)5Img2varchar否否中图(300x300)6Img3varchar否否原始图片7CreateTimedatetime否否上传时间数据库中表与表存在联系,互相之间有一定的约束,具体关系如图3-10所示。图3-10 数据库关系图第四章 详细设计和实现4.1用户注册和实现对领域类的添加、删除、修改是每个系统的主要任务。下面介绍系统是如何在实现这些操作,以及如何利用泛型来减少重复代码。根据前面说到的业务层和数据访问层的关系。要添加,删除,修改信息,必需先在业务层调用数据访问的方法。类图及增删改查的方法如图4-1所示。图4-1 用户注册类图类图可以看到包含了Delete、Get、GetList、Insert、Update等一系列的方法,它们分别代表的含义为删除、获得一条数据、获得全部数据、插入一条新数据、更新数据等操作。注册新用户,即增加用户信息,主要实现代码如下:public int Add(CJN.SHOP.Model.Users model)StringBuilder strSql=new StringBuilder();strSql.Append(insert into Users();strSql.Append(UserName,Password,UserGradeId,RealName,NickName,Sex,Mobile,Phone,CityId,Address,Postcode,Integral,Money,IsStatus,AddTime,EditTime,DEF01,DEF02,DEF03,DEF04,DEF05);strSql.Append( values ();strSql.Append(UserName,Password,UserGradeId,RealName,NickName,Sex,Mobile,Phone,CityId,Address,Postcode,Integral,Money,IsStatus,AddTime,EditTime,DEF01,DEF02,DEF03,DEF04,DEF05);strSql.Append(;select IDENTITY);SqlParameter parameters = new SqlParameter(UserName, SqlDbType.NVarChar,100),new SqlParameter(Password, SqlDbType.VarChar,50),new SqlParameter(UserGradeId, SqlDbType.Int,4),new SqlParameter(RealName, SqlDbType.NVarChar,50),new SqlParameter(NickName, SqlDbType.NVarChar,20),new SqlParameter(Sex, SqlDbType.TinyInt,1),new SqlParameter(Mobile, SqlDbType.VarChar,20),new SqlParameter(Phone, SqlDbType.VarChar,20),new SqlParameter(CityId, SqlDbType.VarChar,50),new SqlParameter(Address, SqlDbType.NVarChar,200),new SqlParameter(Postcode, SqlDbType.Int,4),new SqlParameter(Integral, SqlDbType.Int,4),new SqlParameter(Money, SqlDbType.Money,8),new SqlParameter(IsStatus, SqlDbType.TinyInt,1),new SqlParam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论