版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录目录摘 要.- 1 -ABSTRACT.- 2 -1. 引 言.- 3 -2. 设计目的与任务.- 4 -3. 需求分析.- 4 -4. 系统设计.- 5 -4.1 分层模式.- 5 -4.2 开发技术与工具.- 5 -4.3 总体设计.- 10 -4.3.1 系统总体结构.- 10 -4.3.2 流程图.- 12 -4.4 详细设计.- 13 -4.4.1 数据库设计.- 13 -4.4.2 系统开发规范及说明.- 17 -4.4.3 具体模块设计.- 19 -5. 程序清单.- 26 -5.1 数据库脚本.- 26 -5.2 项目实现部分代码.- 29 -6. 程序调试与体会.- 45
2、 -7. 运行结果.- 46 -8. 结 论.- 54 -9. 致 谢.- 54 -10. 参考文献.- 54 -摘 要随着信息化网络的发展,网络对人们的生活影响越来越大,网上购物也逐渐成为一种趋势,这对电子商场的发展起到了很好的推进作用。本文主要通过对电子商城的应用环境和主要实现功能进行分析,叙述了本电子商城的设计与实现过程。该系统是基于多层企业级应用标准 JAVA EE 技术开发的WEB 应用,以典型的 MVC 模式架构为基础。采用 JaveEE5 轻量级框架SSH 与前台 Ajax 技术相结合来实现,在设计过程中全方位的应用软件工程的开发思想,对项目进行 UML 建模包括各模块的类图、时
3、序图等。系统基于 B/S 分布式结构,适应范围广阔。关键词:电子商城;SSH;Ajax;框架AbstractWith the development of information networks, the network plays an increasing role in peoples lives, and online shopping is becoming a trend, which wonderfully facilitates the development of electronic store. This article is focused on the analys
4、is of the applied environment of electronic mall and the main achievement function, for the purpose of describing the design and implement process of E-mall.The system is based on the web application developed with multi-standard enterprise application standard JAVA EE,framed with classical MVC mode
5、l architecture,and realized through the combination of lightweight framework SSH and front desk Ajax technology. In the design process a full range of application development software engineering development ideas was used in theUML modeling of the project,which included class diagrams, sequence dia
6、grams. The system is based on B / S distributed architecture to meet a broad range of requirements.Key words: Electronic Mall, SSH, Ajax, Framework1. 引 言随着网上购物的迅猛发展,电子商城大量涌现,而电子商城的出现不仅改变了人们传统的购物方式,也逐渐的影响着人们的消费观,一个好的电子商城不仅能给客户带来方便,更能给企业带来巨大的财富。本商城主要利用JavaEE 与 Ajax 技术进行开发,具有很强的安全性、可靠性和可扩展性。其前台实现了从商品选购
7、到订单提交整个业务流程,后台实现了对整个系统的管理,就整体功能而言,能满足基本的网上购物需求,能让用户感到便捷、快速,让企业管理、维护更简单。 2. 设计目的与任务随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生。本电子商城分为前、后台两部分,前台主要实现会员的网上购物业务流程,后台则由各种管理员对商城会员、商品、定单等内容进行管理。3. 需求分析本电子商城分为前后台两部分,前台主要包括非会员和会员用户,后台分为商品管理员、订单管理员、会员管理员和系统管理员。在系统中依据用户的权限执行相应的功能。系统用例图如下所示:业 业 业业
8、 业业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业业 业业 业 业 业 业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业 业 业业 业 业 业 业 业业 业 业 业业 业 业 业业 业 业 业 业 业 业业 业 业 业业 业 业 业 业业 业 业 业 业业 业 业 业 业业 业 业 业 业业 业 业 业 业 业图 3-1 系统用例图4. 系统设计4.1 分层模式本系统是基于 B/S 模式开发的 JAVA EE 多层体系结构 WEB 应用。系统开发主要分为以下几层:表示层、业务层、DAO 层、持久层。业务层和
9、DAO层都通过接口与其它层进行连接从而减小了各层之间的耦合度,实现高内聚、低耦的思想。分层结构图如下所示:图 4-1 系统分层结构4.2 开发技术与工具主要开发工具为:MyEclipse8.6、Mysql6.0、Tomcat6.0、PowerDesigner12。主要技术包括:JavaEE 轻量级框架 S2SH、MD5 算法、Log4j、Ajax、JSON。S2SH 集成框架是 Struts、Spring 和 Hibernate 三种技术的有机融合, 是目前应用最广泛的 Java EE 架构。在 S2SH 集成框架中,Struts 的作用是提供 MVC 模型, 将界面、业务逻辑和数据分离, 并
10、提供一个高可扩展的架构。Spring 作为核心,向上整合 MVC 框架,向下整合 ORM 框架,使用 Spring的 IoC 容器来管理各组件之间之间的依赖关系,Spring 的声明事务将负责逻辑层组件的事务管理。而 Hibernate 提供了一个抽象的数据服务视图,将用户对数据库的访问进行高度抽象。 Struts 是目前创建Web 应用最常用的表现层MVC 框架实现,是Jakarta Apache 的一个开源项目。基于Model2 的Struts 框架利用控制器和定制标签库将应用中的模型和视图分离,达到了层间松散耦合的效果,同时提高系统的灵活性、重用性和维护性。作为开源项目,Struts 经
11、受了大量实践的检验,功能越来越强大,体系也日臻完善,并且对其他技术和框架显示出良好的融合性。图4-2 Struts2.0 MVC结构图Spring 由Rod Johnson 创建,它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean 来完成以前只可能由EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。简单来说,Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。图4-3 Spring功能图Hibernate 是一个开放源代码的对象关系
12、映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC 的场合, 既可以在Java 的客户端程序使用, 也可以在Servlet/JSP 的Web 应用中使用。图4-4 Hibernate运行图AJAX 是 Asynchronout JavaScript and XML 的缩写,它并不是一门新的语言或技术,实际上是几项技术按一定的方式组合在一起,在共同的协作中发挥各自的作用,它包括:使用 XHTML 和 CSS 标准化呈现;使用 DOM 实现动态显示和交互;使用 XML 和 XSLT 进行
13、数据交换和处理;使用XMLHttpRequest 进行异步数据读取;最后用 JavaScript 绑定和处理所有数据。AJAX 的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无刷新页面) ,这一特点要得益于 XMLHTTP 组件 XMLHttpRequest 对象。这样就可以像再发桌面应用程序只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作提交给服务器来做,这样即减轻了服务器的负担又加快了响应速度、缩短了用户等候时间。图4-5 Ajax模型JSON(JavaScript Object Notation,JavaScript 对象标记)是一种轻量级的
14、数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一个子集。JSON 采用与编程语言无关的文本格式,但是也使用了类 C 语言的习惯,这些特性使 JSON 成为理想的数据交换格式。而 AJAX 可以利用 JSON 更加有效地接收数据,因为 JSON 特殊的属性。在 Struts 2 的 showcase 中的AJAX 部分,JSON 的结果输出是通过 Freemaker 模板实现。这种方法在简易性和灵活性上都比不上 JSON 插件。Message Digest Algo
15、rithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。当用户登录的时候,系统把用户输入的密码进行 MD5 Hash 运算,然后再去和保存在文件系统中的 MD5 值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护
16、进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 4.3 总体设计4.3.1 系统总体结构系统总体结构 本系统分为前台和后台两部分,前台提供一条网上购物业务流程的功能实现,主要实现模块见图 4-6;后实现对前台功能信息的管理,主要实现模块见图 4-7。前台功能模块:电子商城前台商品信息商品信息显示订单购物车会员信息商品信息查询会员信息修改会员登录会员注册购物车商修改购物车商品删除购物车商品添加订单删除订单修改订单提交商品评价图 4-6 前台功能模
17、块后台功能模块: 电子商城后台商品信息管理商品信息后台用户管理会员管理订单管理商品分类管理商品添加分类信息用户信息会员信息订单信息密码信息图 4-7 后台功能模块4.3.2 流程图流程图前台主要分为非会员用户和会员用户,其中只有会员用户才能实现在线购物,而非会员用户必需进行注册。后台用户主要分为商品管理员、会员管理员、定单管理员、系统维护员,不同的管理员实现不同的功能。前台流程图:前台会员?信息浏览注册添加商品至购物车提交定单登录商品评论修改购物车是否个人账户信息图 4-8 前台流程图后台流程图:后台登录商品信息管理权限系统维护会员信息管理定单信息管理商品管理员定单管理员会员管理员系统管理员图
18、 4-9 后台流程图4.4 详细设计4.4.1 数据库设计数据库设计本系统数据库开发主要基于 Mysql6.0 数据库管理工具,包括 8 个数据库表如下所示: 数据字典表 4-1 e_shop 数据表清单表名表名解释解释ADMIN管理员表CART购物车表EVALUATE商品评价表MEMBER会员表MERCHANTABLE商品表ORDERS定单表RECORD记录表TYPES类别表表 4-2 后台管理员表(ADMIN)ADMIN(admin)是否主是否主键键字段名字段名字段描述字段描述数据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是ADMIN_ID管理员编号INT(2)2ADMIN
19、_NAME管理员名VARCHAR(50) 50ADMIN_PWD管理员密码VARCHAR(30) 20ADMIN_TYPE管理员种类INT(1)1表 4-3 购物车表(CART)CART(cart)是否主键是否主键字段名字段名字段描述字段描述数据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是CART_ID购物车编号INT(5)5CART_MEM_ID会员编号INT(5)5是CART_MER_ID商品编号INT(6)6是CART_NUM商品数量INT(3)3是表 4-4 商品评价表(EVALUATE)EVALUATE(evaluate)是否主是否主键键字段名字段名字段描述字段描述数
20、据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是EVAL_ID评价编号INT(3)3EVAL_MEM_ID会员编号INT(5)5是EVAL_MER_ID商品编号INT(6)6是EVAL_DATE评价日期VARCHAR(20)20是EVAL_CONTENT 评价内容VARCHAR(200)200是表 4-5 会员表(MEMBER)MEMBER(member)是否主是否主键键字段名字段名字段描述字段描述数据类型数据类型长长度度可空可空约束约束缺省缺省值值备注备注是MEM_ID会员编号INT(5)5MEM_NAME会员名称VARCHAR(50)50MEM_PWD会员密码VARCHAR(
21、30)20MEM_TEL联系电话VARCHAR(15)15是MEM_ADDRESS联系地址VARCHAR(50)50是MEM_REGIST_DATE注册日期VARCHAR(10)10是MEM_POST邮编VARCHAR(10)10是MEM_EMAILEMAILVARCHAR(20)20是MEM_CART_ID购物车编号INT(5)5是表 4-6 商品表(MERCHANTABLE)MERCHANTABLE(merchantable)是否主是否主键键字段名字段名字段描述字段描述数据类型数据类型长长度度可可空空约束约束缺省缺省值值备注备注是MER_ID商品编号INT(6)6MER_NAME商品名称V
22、ARCHAR(50)50MER_TYPE_ID商品种类INT(3)3是MER_PLACE出产地VARCHAR(50)50 是MER_PRICE价格DECIMAL(8,2)8MER_DISCOUNT折扣DECIMAL(2,1)2是MER_PICTURE图片VARCHAR(50)50 是MER_DESC描述VARCHAR(50)50 是MER_PRODUCTER 厂家VARCHAR(60)60 是MER_LEAVE_DATE出厂时间VARCHAR(10)10 是MER_ADD_DATE添加时间VARCHAR(10)10 是MER_NUM销售数量INT0表 4-7 定单表(ORDERS)ORDERS
23、(orders)是否主是否主键键字段名字段名字段描述字段描述数据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是ORDER_ID定单编号INT(6)6ORDER_DATE定单日期VARCHAR(20) 20是ORDER_MEM_ID会员编号INT(5)5是ORDER_STATUS定单状态INT(1)1是ORDER_SEND_TIME发送时间VARCHAR(60) 60是ORDER_REMARK定单备注VARCHAR(100)100是ORDER_SUM价钱总和DECIMAL(8,2) 8是表 4-8 记录表(RECORD)RECORD(record)是否主是否主键键字段名字段名字段描
24、述字段描述数据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是RECORD_ID记录编号INT(6)6RECORD_MER_ID商品编号INT(6)6是RECORD_MER_NUM商品数量INT(3)3是RECORD_ORDER_ID 定单编号INT(6)6是表 4-9 类别表(TYPES)TYPES(types)是否主是否主键键字段名字段名字段描述字段描述数据类型数据类型长长度度可空可空 约束约束缺省缺省值值备注备注是TYPE_ID类别编号INT(3)3TYPE_NAME类别名称VARCHAR(30) 30是TYPE_DESC类别描述VARCHAR(100)100是 数据库概念设
25、计将抽象的需求转为数据库概念结构,即概念模式。FK_MERCHANTABLE_TYPE_IDFK_EVALUATE_MEN_IDFK_EVALUATE_MER_IDFK_CART_IDFK_CART_MER_IDFK_ORDER_MEM_IDFK_RECORD_MER_IDFK_RECORD_ORDER_ID后台管理员表管理员编号管理员名管理员密码管理员种类CONSTRAINT Serial (2)Variable characters (50)Variable characters (20)IntegerPK_ADMIN_IDKey_1 会员表会员编号会员名会员密码联系电话联系地址注册日期邮
26、编EMAIL购物车编号CONSTRAINT Serial (5)Variable characters (50)Variable characters (20)Variable characters (15)Variable characters (50)Variable characters (10)Variable characters (10)Variable characters (20)IntegerPK_MEMBER_IDKey_1 类别表类别编号类别名称类别描述CONSTRAINT Serial (3)Variable characters (30)Variable charac
27、ters (100)PK_TYPES_IDKey_1 商品表商品编号商品名称出产地价格折扣图片描述厂家添加时间销售数量出厂时间CONSTRAINT Serial (6)Variable characters (50)Variable characters (50)Decimal (8,2)Decimal (2,1)Variable characters (50)Variable characters (50)Variable characters (60)Variable characters (10)IntegerVariable characters (10)PK_MERCHANTABLE
28、_IDKey_1 商品评价表评价编号评价日期评价内容CONSTRAINT Serial (3)Variable characters (20)Variable characters (200)PK_EVALUATE_IDKey_1 购物车表购物车编号商品数量CONSTRAINT Serial (5)IntegerPK_CART_IDKey_1 定单表定单编号定单日期定单状态发送时间定单备注价钱总和CONSTRAINT Serial (6)Variable characters (20)IntegerVariable characters (60)Variable characters (100
29、)Decimal (8,2)PK_ORDER_IDKey_1 记录表记录编号商品数量CONSTRAINT Serial (6)IntegerPK_RECORD_IDKey_1 图 4-10 概念图 数据库物理设计依据所用的数据库由概念模型生成相应的物理模型,如下图所示。FK_MERCHANTABLE_TYPE_IDFK_EVALUATE_MEN_IDFK_EVALUATE_MER_IDFK_CART_IDFK_CART_MER_IDFK_ORDER_MEM_IDFK_RECORD_MER_IDFK_RECORD_ORDER_ID后台管理员表管理员编号管理员名管理员密码管理员种类CONSTRAI
30、NTINT(2)VARCHAR(50)VARCHAR(20)INT(1)PK_ADMIN_ID会员表会员编号会员名会员密码联系电话联系地址注册日期邮编EMAIL购物车编号CONSTRAINTINT(5)VARCHAR(50)VARCHAR(20)VARCHAR(15)VARCHAR(50)VARCHAR(10)VARCHAR(10)VARCHAR(20)INT(5)PK_MEMBER_ID类别表类别编号类别名称类别描述CONSTRAINTINT(3)VARCHAR(30)VARCHAR(100)PK_TYPES_ID商品表商品编号商品名称商品种类出产地价格折扣图片描述厂家添加时间销售数量出厂时
31、间CONSTRAINTINT(6)VARCHAR(50)INT(3)VARCHAR(50)DECIMAL(8,2)DECIMAL(2,1)VARCHAR(50)VARCHAR(50)VARCHAR(60)varchar(10)intVARCHAR(10)PK_MERCHANTABLE_ID商品评价表评价编号会员编号商品编号评价日期评价内容CONSTRAINTINT(3)INT(5)INT(6)VARCHAR(20)VARCHAR(200)PK_EVALUATE_ID购物车表购物车编号会员编号商品编号商品数量CONSTRAINTINT(5)INT(5)INT(6)INT(3)PK_CART_ID
32、定单表定单编号定单日期会员编号定单状态发送时间定单备注价钱总和CONSTRAINTINT(6)VARCHAR(20)INT(5)INT(1)varchar(60)varchar(100)DECIMAL(8,2)PK_ORDER_ID记录表记录编号商品编号商品数量定单编号CONSTRAINTint(6)int(6)int(3)int(6)PK_RECORD_ID图 4-11 物理图4.4.2 系统开发规范及说明系统开发规范及说明1. 系统目录及说明如下图系统目录及说明如下图依据架构思想,将开发类主要分为 action、bean、dao、service 逻辑包。action 包含所有的控制层类,b
33、ean 包含所有领域对象及相应的 ORM 映射文件,dao 包含所有的持久层抽象类,service 包含所有业务层类。另一方面根据系统开发所需建立 filter(过滤器)包、listener(监听器)包、tool(工具)包。具体如下图所示:图 4-12 系统目录图2. Struts 配置文件配置文件图 4-13 Struts 配置文件图4.4.3 具体模块设计具体模块设计1. 模块分析与设计:整个系统主要包括商品信息模块、会员模块、购物车模块、订单模块、商品类别、后台管理员模块。商品信息模块商品信息模块: :本模块主要用来显示、查询和商品评论的功能。主要涉及的类和方法如下类图。其中 PageS
34、erviceImpl 为分页实现类,在整个系统中属于一个公共组件,故在各模块中不再重复介绍。另一方面各模块各层之间类的关系也大致相同,都可以参考以下类图。图 4-14 商品模块类图表 4-10 商品模块主要应用类类名含义MerchantableAction作为其控制层内容,调用相应的业务方法HeadService业务层抽象类,其实现类中包含相应的业务方法MerchantableDAO包含相应的持久层方法表 4-11 MerchantableAction 类方法含义showByType()调用业务层方法按类别显示商品showById()调用业务层方法显示某种商品research()调用业务层方法
35、查询商品showAllMer()调用业务层方法显示所有商品deleteMer()调用业务层方法删除商品updateMer()调用业务层方法修改商品信息saveMer()调用业务层方法保存商品信息表 4-12 HeadService方法含义findById()调用持久层方法按商品编号查询商品findByType()调用持久层方法按种类查询商品researchMer()按条件查询商品deleteMer()删除商品updateMer()修改商品saveMer()保存商品表 4-13 MerchantableDAO 类方法含义findAllByKeyword()按关键字查询所有商品findByType
36、s()按各类查询商品findById()按商品编号查询商品delete()删除商品findAll()查询所有商品saveOrUpdate()保存或修改商品findByNum()依据数量查询findPartByTyps()依据种类查询部分商品会员模块:会员模块:在本模快中用到了两控制层类 LoginAction 和 LoginJsonAction,前者用于普通的控制调用业务层方法,同时返回相应的业务逻辑视图。后者则是用Struts 和 Json 相结合应用的,首先是能过 Ajax 提交数据当相应的 action,然后调用业务层方法处理完成返回并不是返回某个逻辑视图,而是将返回的信息通过 Json
37、 进行数据转换,前台通过 Ajax 接收数据。表 4-14 会员模块主要应用类类名含义LoginAction普通形式的控制器,调用相应的业务层方法LoginJsonActionAjax 提交时使用的控制器UserService业务层类,包含各种相应的业务处理方法MemberDAO包含相应的持久层方法表 4-15 LoginAction 类方法含义modifyPwd()调用业务层方法修改会员密码modifyAddress()调用业务层方法修改会员地址等信息regist()调用业务层方法注册showMem()调用业务层方法后台显示所有会员delMem()调用业务层方法删除会员表 4-16 Logi
38、nJsonAction 类方法含义execute()调用业务层方法会员登录校验表 4-17 UserService 类方法含义modifyPwd()修改会员密码modifyAddress()修改会员地址等信息save()保存会员delMem()删除会员表 4-18 MemberDAO 类方法含义findByNameAndPwd()按用户名和密码查询用户saveOrUpdate()保存或修改会员信息findAll()查询所有会员delete()删除会员购物车模块购物车模块: :同上面的会员模板,在此模块中也有两个控制类 CartAction 和CartJsonAction。表 4-19 购物车模
39、块主要应用类类名含义CartAction普通形式的控制器,调用相应的业务层方法CartJsonActionAjax 提交时使用的控制器HeadService业务层类,包含各种相应的业务处理方法CartDAO包含相应的持久层方法表 4-20 CartAction 类方法含义execute()调用业务层方法查询会员相应的购物车update()调用业务层方法修改购物车delete()调用业务层方法删除购物车表 4-21 CartJsonAction 类方法含义add()添加商品到购物车表 4-22 HeadService 类方法含义findCartByMember()依据会员查询相应的购物车upda
40、teCart()修改购物车deleteCart()删除购物车中的商品addMerToCart()将商品加入购物车表 4-23 CartDAO 类方法含义findByMember()依据会员查询相应的购物车updateCart()修改购物车delete()删除购物车中的商品saveCart()将商品加入购物车订单模块订单模块表 4-24 订单模块主要应用类类名含义OrderAction控制器调用相应的业务层方法HeadService业务层类,包含各种相应的业务处理方法OrderDAO包含相应的持久层方法表 4-25 OrderAction 类方法含义execute()调用业务层方法显示订单add
41、Order()调用业务层方法添加historyOrder()调用业务层方查看历史订单modifyOrder()调用业务层方法进入修改订单deleteOrder()调用业务层方法删除订单showOrders()调用业务层方法显示所有订单submit()调用业务层方法确认定单、发货表 4-26 HeadService 类方法含义addOrder()添加订单findHistoryOrder()查寻历史订单deleteOrde删除订单updateOrders()修改订单表 4-27 OrderDAO 类方法含义findById()据编号查询订单findHistoryOrder()查寻历史订单delet
42、e()删除订单saveOrUpdate()保存或修改订单商品类别模块商品类别模块: :表 4-28 商品类别模板应用类类名含义TypesAction控制器调用相应的业务层方法HeadService业务层类,包含各种相应的业务处理方法TypesDAO包含相应的持久层方法表 4-29 TypesAction 类方法含义getAllType()调用业务层方法获取类别deleteType()调用业务层方法删除addType()调用业务层方法添加种类updateType()调用业务层方法修改种类recommend()调用业务层方法推荐某类商品到首页cancelRecommend()调用业务层方法取消推荐
43、表 4-30 HeadService 类方法含义findByReCommend查询推荐的商品findAllTypes()查询所有类别deleteType()删除类别saveType()保存类别updateType()修改类别表 4-31 TypesDAO 类方法含义findByRecommend()查询被推荐的类别findById()据编号查询所有类别findAll()查询所有类别saveOrUpdate()保存或修改类别delete()删除类别后台管理员模块后台管理员模块: :表 4-32 后台管理员主要应用类类名含义AdminAction控制器调用相应的业务层方法UserService业务
44、层类,包含各种相应的业务处理方法AdminDAO包含相应的持久层方法表 4-33 AdminAction 类方法含义valAdmin()调用业务层方法校验用户save()调用业务层保存管理员update()调用业务层方法修改管理员权限delete()调用业务层方法删除管理员modifyPwd()调用业务层修改管理员密码exit()注销表 4-34 UserService 类方法含义validateAdmin()校验用户saveAdmin()保存管理员updateAdmin()修改管理员delAdmin()删除管理员表 4-35 AdminDAO 类方法含义findAdminByNameAndP
45、wd据用户名与密码查询用户saveOrUpdate()保存或保存管理员Delete()删除管理员findById()依据编号查询管理员2. 时序图举例时序图通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。以下列出了本商城中的登录时序图与购物时序图,其它功能时序图与其两者基本相似,只是处理的对象不同,故此不在赘述。业 业 : MemberLoginJsonActionUserServiceMemberDAO业 业 业1: 业 业 业 业2: execute()3: val
46、idateMem()4: 业 业5: 业 业 业 业 业 业6: 业 业 业 业7: 业 业 业 业 业 业8: 业 业 业 业 业 业图 4-15 登录时序图 : MemberCartJsonActionHeadServiceCartDAO业 业 业1: 业 业 业 业2: 业 业 业 业 业 业 业3: 业 业 业 业 业 业 业4: 业 业 业 业5: 业 业 业 业6: 业 业 业 业7: 业 业 业 业图 4-16 购物时序图5. 程序清单5.1 数据库脚本具体实现脚本:#管理员表CREATE TABLE admin(admin_id INT(2) AUTO_INCREMENT,ad
47、min_name VARCHAR(50) NOT NULL,admin_pwd VARCHAR(30) NOT NULL,admin_type INT(1) NOT NULL,CONSTRAINT PK_ADMIN_ID PRIMARY KEY (admin_id) );#会员表CREATE TABLE member(mem_id INT(5) AUTO_INCREMENT,mem_name VARCHAR(50) NOT NULL,mem_pwd VARCHAR(30) NOT NULL,mem_tel VARCHAR(15),mem_address VARCHAR(50),mem_regi
48、st_date VARCHAR(10),mem_post VARCHAR(10),mem_email VARCHAR(20),mem_cart_id INT(5),CONSTRAINT PK_MEMBER_ID PRIMARY KEY (mem_id);#商品种类CREATE TABLE types(type_id INT(3) AUTO_INCREMENT,type_name VARCHAR(30),type_desc VARCHAR(100),type_recommend int default 0,CONSTRAINT PK_TYPES_ID PRIMARY KEY (type_id);
49、#商品信息表CREATE TABLE merchantable(mer_id INT(6) AUTO_INCREMENT,mer_name VARCHAR(50) NOT NULL,mer_type_id INT(3),mer_place VARCHAR(50),mer_price DECIMAL(8,2) NOT NULL,mer_discount DECIMAL(2,1),mer_picture VARCHAR(50),mer_desc VARCHAR(50),mer_producter VARCHAR(60),mer_leave_date VARCHAR(10),mer_add_date
50、 VARCHAR(10),mer_num int default 0,CONSTRAINT PK_MERCHANTABLE_ID PRIMARY KEY(mer_id),CONSTRAINT FK_MERCHANTABLE_TYPE_ID FOREIGN KEY (mer_type_id) REFERENCES types(type_id);#商品评价表CREATE TABLE evaluate(eval_id INT(3) AUTO_INCREMENT,eval_mem_id INT(5),eval_mer_id INT(6),eval_date VARCHAR(20),eval_conte
51、nt VARCHAR(200),CONSTRAINT PK_EVALUATE_ID PRIMARY KEY (eval_id),CONSTRAINT FK_EVALUATE_MEN_ID FOREIGN KEY (eval_mem_id) REFERENCES member (mem_id),CONSTRAINT FK_EVALUATE_MER_ID FOREIGN KEY (eval_mer_id) REFERENCES merchantable(mer_id);#购物车 购物车号即为会员编号CREATE TABLE cart(cart_id INT(5) AUTO_INCREMENT,ca
52、rt_mem_id INT(5),cart_mer_id INT(6) unique,cart_num INT(3),CONSTRAINT PK_CART_ID PRIMARY KEY (cart_id),CONSTRAINT FK_CART_ID FOREIGN KEY (cart_mem_id) REFERENCES member(mem_id),CONSTRAINT FK_CART_MER_ID FOREIGN KEY (cart_mer_id) REFERENCES merchantable (mer_id);#订单表CREATE TABLE orders (order_id INT(
53、6) AUTO_INCREMENT,order_date VARCHAR(20),order_mem_id INT(5),order_status INT(1),order_send_time varchar(60),order_remark varchar(100),order_sum DECIMAL(8,2),CONSTRAINT PK_ORDER_ID PRIMARY KEY (order_id),CONSTRAINT FK_ORDER_MEM_ID FOREIGN KEY (order_mem_id) REFERENCES member(mem_id);#购物记录CREATE TABL
54、E record(record_id int(6) AUTO_INCREMENT,record_mer_id int(6),record_mer_num int(3),record_order_id int(6),CONSTRAINT PK_RECORD_ID PRIMARY KEY (record_id),CONSTRAINT FK_RECORD_MER_ID FOREIGN KEY (record_mer_id) REFERENCES merchantable (mer_id),CONSTRAINT FK_RECORD_ORDER_ID FOREIGN KEY (record_order_
55、id) REFERENCES orders (order_id);5.2 项目实现部分代码1. applicationContext.xmlapplicationContext.xml 配置文件配置文件org.hibernate.dialect.MySQLDialectupdatetrue truecom/eshop/bean/Admin.hbm.xmlcom/eshop/bean/Cart.hbm.xmlcom/eshop/bean/Evaluate.hbm.xmlcom/eshop/bean/Member.hbm.xmlcom/eshop/bean/Merchantable.hbm.xml
56、com/eshop/bean/Orders.hbm.xmlcom/eshop/bean/Record.hbm.xmlcom/eshop/bean/Types.hbm.xml 2. daoContext.xmldaoContext.xml 配置文件配置文件3. struts.xmlstruts.xml 配置文件配置文件index.jspindex.actionindex.jspmember/modifyPwd.jspmember/modifyAddress.jspregistSucc.jspmember/modifyPwd.jspshowByType.jspshowById.jspresult.
57、jspshowById.jsp1.jsp/head/login.jspmycart.jspaccount.jspfinish.jsphistoryOrder.jspmodifyOrder.jspmodifyOrder.jsp1.jspjsp/index.jsplogin.jsplogin.jsp1.jspimage/bmp,image/png,image/gif,image/jpeg30000/imagemerInfo.jspsaveMerInfo.jspmer!showAllMer?page=1modifyMer.jspmodifyResult.jspuploadError.jsp1.jsp
58、typeInfo.jsptypeInfo.jsptypeInfo.jsporderInfo.jsporderInfo.jspmemInfo.jspmemInfo.jspadminInfo.jspadminInfo.jspmodifyAdminResult.jspmodifyPwd.jsp/back/login.jsp/back/login.jsp1.jsp 4. 业务层业务层 HeadServiceImplHeadServiceImpl 类类package com.eshop.service.impl;import java.util.ArrayList;import java.util.Li
59、st;import java.util.Random;import com.eshop.bean.Cart;import com.eshop.bean.Evaluate;import com.eshop.bean.Member;import com.eshop.bean.Merchantable;import com.eshop.bean.Orders;import com.eshop.bean.Record;import com.eshop.bean.Types;import com.eshop.dao.CartDAO;import com.eshop.dao.EvaluateDAO;imp
60、ort com.eshop.dao.MerchantableDAO;import com.eshop.dao.OrdersDAO;import com.eshop.dao.RecordDAO;import com.eshop.dao.TypesDAO;import com.eshop.service.HeadService;import com.eshop.tool.DateTime;public class HeadServiceImpl implements HeadServiceprivate TypesDAO typesDAO;private MerchantableDAO merch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冰箱的租赁合同范文
- 参建住宅协议书的编写范本
- 交通银行借款合同范本
- 房屋租赁合同终止声明书
- 物业公司管理协议书
- 旅游合作开发合同范文点评
- 建筑劳务分包合同格式范本
- 广东省茶叶原料采购合同模板
- 工程劳动力和施工合同示例
- 员工劳动合同续签互用协议
- 正余弦定理知识点权威总结18页
- 国企纪检监察嵌入式监督的探索与实践
- 浅议小升初数学教学衔接
- 设备安装应急救援预案
- 深基坑工程降水技术及现阶段发展
- 暂堵压裂技术服务方案
- 《孔乙己》公开课一等奖PPT优秀课件
- 美的中央空调故障代码H系列家庭中央空调(第一部分多联机)
- 业主委员会成立流程图
- (完整版)全usedtodo,beusedtodoing,beusedtodo辨析练习(带答案)
- 广联达办公大厦工程施工组织设计
评论
0/150
提交评论