已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西大学计算机与电子信息学院 本科课程设计报告数据库课程设计报告在线食品销售与管理系统学 院:计算机与电子信息学院专业名称:网络工程指导教师: 姓 名:eyet时 间:2011年6月摘要:本课程设计的选题是“在线食品销售管理系统”,本文首先对该系统的可行性进行了分析,通过提出问题分析问题进而提出了系统设计的思想,使用b/s的结构完成在线销售与管理功能,在系统的实现上,使用用了jsp中流行的struts2+spring+hibernate的经典框架结构,这样系统分层清晰,便于维护,表示层由struts2管理,业务逻辑层由spring管理,数据持久层由hibernate管理。报告从需求分析开始,对系统进行总体设计,包括系统功能模块设计、流程分析以及架构总体设计等,然后进行了数据库设计,并对数据库的设计方案进行了详细的阐述,包括数据库概念设计、逻辑设计以及安全模式设计等。最后文档给出了系统的实现方法,包括程序模块设计以及主要功能模块的编码及测试结果,最后进行了本次课程设计的总结和展望。关键字:在线食品销售,jsp,struts2,spring,hibernate,数据库设计abstracts:this course design theme is online food sales management system, this article first the feasibility of the system is analyzed, through analyzing problems and puts forward the question of the system design of thought, use b/s structure complete online sales and management functions, the realization of the system with the jsp, use struts2 + are popular in the classic frame structure + hibernate, such systems, easy to maintain, stratified clear representation layer struts2 management, business by by logic layer are management, data persistence layer hibernate management by. report from requirements analysis to system began, overall design, including the system function module design, process analysis and architecture, and then the overall design, the design of database and the database design in detail, including database concept design and logical design and safety model design, etc. final document presented system realization ways, including program module design and main function modules of the code and test results, the design of this course of summary and outlook.keywords:online food sales, jsp, struts2,spring, hibernate, database design目录1、 系统可行性研究.31.1 问题的提出.31.2 分析问题.31.3 系统设计思想.32、 需求分析.33、 总体设计.53.1系统功能模块设计及流程分析.53.1.1用户模块:.53.1.2管理员模块:.63.2 架构总体设计.63.2.1 struts 2.63.2.2 spring.63.2.3 hibernate.73.3 系统开发环境与运行环境.74、 数据库设计.74.1 数据库概念设计.74.1.1 数据库分析.71)食品购物系统关系到的实体82)实体属性83)实体之间的联系84.1.2 e-r图.84.1.3 e-r图转换成关系模式.91)由实体得到关系模式92)由联系得到关系模式94.2 数据库逻辑设计.94.3 安全模式设计.134.3.1 数据库完整性设计.134.3.2 数据库权限控制.135、 系统实现135.1 程序模块设计.135.1.1 程序目录结构.135.1.2 jsp页面分为会员页面与管理员页面.145.1.3 配置文件.155.1.4 类文件.155.2主要模块及代码.175.2.1 部分配置文件代码.175.2.2 主要界面与代码.216、 总结与展望.457、 参考文献.451、 系统可行性研究1.1问题的提出随着信息化步伐的加快,internet的应用也越来越广泛,用户对于internet的应用需求也有了根本性的变化,基于internet的电子商务正逐渐成为internet商业化发展的重要内容。电子商务是指各种具有商业活动能力的实体利用网络和先进的数字化传媒技术进行的各项商业贸易活动。网上购物,就是电子商务所包含的三大种类之一。网上购物是将来最有希望的网上事业,因此,开发功能强大、性能完善的网上购物系统具有十分重要的意义和价值。与其他商品一样,食品也很适合在网上销售,虽然有运输、时间的限制,但是对于现在的物流发展状况而言,已经都不是问题。食品有地域的差异,消费者可能在本地不能买到相应的食品,网上购食品无疑打破了这种限制,而且对于不喜欢逛超市商场的人来说,网上购食品会是一种独特的购物享受。而在商家方面,缺少一个集成的信息平台和信息系统,希望通过一个网站系统实现消费者网上购物,还有后台处理会员、货物等一系列信息的管理操作。1.2 分析问题本网站是一个专营食品的销售网。对于用户可以查看货物、加入购物车、购买食品、查看订单等一系列基本的网上购物操作,实现轻松网上选购食品。对于管理员则可以完成食品信息的查看、添加、修改操作,订单的查询、状态修改操作,会员管理、管理员管理等功能。1.3 系统设计思想c/s模式和b/s是当今世界开发模式技术架构的两大主流技术。c/s架构软件的优势与劣势:应用服务器运行数据负荷较轻,数据的存储管理功能较为透明,c/s架构的劣势是高昂的维护成本且投资大。b/s架构软件的优势与劣势:维护和升级方式简单,成本降低,选择更多,但应用服务器运行数据负荷较重。权衡这两种模式的优劣势,我们选择使用b/s模式,因为b/s架构的软件只需要管理服务器即可,所有的客户端只是浏览器,根本不需要做任何的维护,所有的操作只需要针对服务器进行。男左女右食品网站采用sql server 2005数据库,从系统升级和维护方面考虑,采用struts2,spring,hibernate三种开源框架,这样系统分层清晰,便于维护,表示层由struts2管理,业务逻辑层由spring管理,数据持久层由hibernate管理,网站信息层主要只数据库,用来存储食品、订单、会员、管理员等一系列的信息。2、 需求分析系统的角色分为:游客、会员和管理员,各个角色需要完成的功能用用例图说明:图表 1 游客与会员图表 2 管理员3、 总体设计3.1系统功能模块设计及流程分析系统功能主要分为两大模块:用户模块、管理员模块。主要完成功能的流程如下所示:3.1.1用户模块:图表 3 游客功能模块图表 4 会员功能模块3.1.2管理员模块:图表 5 管理员功能模块3.2 架构总体设计本网站采用struts、spring、hibernate组建轻量级联合框架。ssh多层的架构模式,从上到下依次为表示层、业务层和数据持久化层。通过分层处理使整个系统结构清晰,功能明确,各层次之间相互独立,对某一层次的修改不会影响其他层次,使层次间的耦合性降到最低,为软件的重用化和组件化创造了条件。3.2.1 struts 2表示层是面向用户的界面,是用户与系统之间交互的媒介。如,用户在界面发送请求,系统接收请求 ,进行处理,控制器代理负责处理用户请求,处理用户请求时回调业务控制器的execute方法,该方法的返回值将决定了struts2将怎样的视图资源呈现给用户。这一过程包括了用户动作、数据传递、界面显示。mvc模式就是将这三者分离,减少三者耦合。表示层框架采用的是struts 2。在本网站中的具体应用如下:当客户端发出请求时,经过定义在web.xml中过滤器的拦截,接着filterdispatcher被调用,filterdispatcher询问action映射器来决定这个请求是否需要调用某个action。如果action映射器决定需要调用某个action,filterdispatcher把请求的处理交给action代理。action代理器通过配置管理器询问框架的配置文件,找到需要调用的action类。action代理器创建一个actioninvocation的实例。actionlnvocation实例使用命名模式来调用,在调用action的过程前后,涉及到相关拦截器(intercepter)的调用。一旦action执行完毕,actionlnvocation负责根据strutsxml中的配置找到对应的返回结果,返回相应界面。3.2.2 spring业务层主要负责管理业务层的逻辑对象,包括逻辑对象对于底层的事务管理,分布式管理,逻辑对象的生命周期管理等。spring是非ejb的轻量级框架,它通过依赖注入、aop应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性,作为业务逻辑层的框架。spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,组成spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。核心容器提供spring框架的基本功能。核心容器的主要组件是beanfactory,它是工厂模式的实现。beanfactory使用控制反转(ioc)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。在本网站中的具体应用如下:通过读取applicationcontext-dao.xml配置文件,spring容器生成相应的bean实例,dao类作为action的参数。3.2.3 hibernate数据持久层的设计目标是对各种数据进行低层的持久化的工作,持久化就是把数据保存到永久保存的存储设备中,j2ee项目中的数据持久层的作用就是通过对象关系映射,使得开发者能够以对象的方式访问数据,使程序员不用编写详细底层的程序访问数据持久层代码,把精力放在业务逻辑的开发。同时能够在不同项目中重用映射框架,大大简化了数据增、删、改、查等功能的开发过程。hibernate在java程序与数据库之间进行转换,java程序员事先定义好对象与数据库表格之间的对应。在实践中采用以下数据持久方案,通过dao和orm组件来实现数据的持久化。orm组件能完成java对象和数据库中的数据间的相互的映射,同时orm也能实现数据库的连接,事务的管理功能。orm作用是在关系型数据库和对象之间产生一个自动的映射,这样在具体的数据库操作中就不需要再和复杂的 sql语句打交道。orm是通过使用描述对象和数据库之间映射的元数据将java程序中的对象自动持久化到关系数据库中。在本网站中的具体应用:将java中的对象与对象的关系,对应到关系型数据库中的表与表之间的关系,每张表对应一个对象,hibernate提供了这个过程中自动对应转换的方案,也提供了关系型数据库中的表与表之间的关系,对应至java程序中的对象与对象的关系。3.3 系统开发环境与运行环境开发语言jsp框架技术struts2+spring+hibernate开发环境myeclipse 8.5 m1数据库sql server 2005服务器apache tomcat操作系统windows系列 支持浏览器firefox、ie、chrome等主流浏览器4、 数据库设计4.1 数据库概念设计4.1.1 数据库分析根据对系统的可行性研究与需求分析以后,我们可以对系统的数据库进行分析,得到如下结果:1)食品购物系统关系到的实体在食品购物系统中,若要完成购物,则必须为会员才能进行购物,所以有“会员”实体;食品购物系统中的食品是必不可少的,所以有“食品”实体;会员需要购买食品,必须存在一个交易的记录,所以有“订单”实体;每一种食品都属于一个种类,所以有“种类”实体。综上所述食品购物系统涉及最主要实体:会员、食品、订单、种类。2)实体属性实体集“会员”的属性包括:会员的id号、会员姓名、会员密码、性别、年龄、邮箱、手机号和状态,状态是用来标识会员在整个系统中所处的状态;实体集“食品”的属性包括:食品编号、食品类别、食品价格、存货数量、最新入库、原产地、保质期、生产日期、重量;实体集“订单”的属性包括:订单编号、会员id、订货时间、订货状态、付款状态、总金额、收货地址、收货人联系电话、邮政编码、收货人姓名、支付方式、备注;实体集“类别”的属性包括:类别名称。3)实体之间的联系会员在购买食品时都能对食品有个评论,每一位会员能对多个食品进行评论,每一个食品能被多个会员评论,所以会员与食品之间存在多对多的“评论”联系;会员在订购食品后有一固定的订单记录,每位会员能拥有多个订单,而一个订单只能属于一位会员,所以会员与订单之间存在一对多的“订购”联系;订单还需要指明拥有哪些食品,每个订单包含有多个食品,而每个食品可以被多个食品所包含,所以订单和食品之间存在多对多的“订单包含”联系;每种食品都必须属于一个类别,所以存在食品与类别之间的多对一的“属于”联系。4.1.2 e-r图由上边的数据库分析能得出系统数据库的e-r图图表 6 er图4.1.3 e-r图转换成关系模式1)由实体得到关系模式会员(会员id、会员姓名、会员密码、性别、年龄、邮箱、手机号、状态)食品(食品编号、食品类别、食品价格、存货数量、最新入库、原产地、保质期、生产日期、重量)订单(订单编号、会员id、订货时间、订货状态、付款状态、总金额、收货地址、收货人联系电话、邮政编码、收货人姓名、支付方式、备注)类别(类别名称)2)由联系得到关系模式(已对一对多和多对一的联系进行了合并处理)评论(食品编号、会员id、评价内容)订单包含(订单编号、食品编号、订货时单价、数量)4.2 数据库逻辑设计由以上数据库的分析,以及最后得出的关系模式可以设计出系统具体需要用到的表项,为了编程的需要与方便,为每个表项都加上了id属性,此属性是自增整数,同时考虑到是一个购物网站,需要增强一定的交互,所以添加了一个公告表,及时通告网站的最新消息。下图1为使用sqlserver2005导出的数据库关系图:图表 7 逻辑数据库关系图以下列出各表项的详细说明:member 会员表字段名属性约束条件说明id 主键int自增memberidvarchar(10)unique会员idmembernamevarchar(30)会员姓名passwordvarchar(16)会员密码sexint 1 , 0 默认1性别 1:男 / 0:女age int0=age=0食品价格amountint=0存货数量newtimedatetime最新入库locationvarchar(100)原产地qualitytimeint=0保质期(天)producetime datetime生产日期weightint=0重量(克)foodclass类别表字段名属性约束条件说明id 主键int自增类别编号classnamevarchar(10)类别名称ordergoods 订单表字段名属性约束条件说明id 主键int自增orderidvarchar(14)订单编号memberidint外键会员idorderdatedatetime订货时间orderstateint 1 , 0 默认0订货状态 1:已发货 / 0:未发货paystateint 1 , 0 默认0付款状态 1:已付款 / 0:未付款totalpricedecimal(10,2)总金额receiveraddressvarchar(100)收货地址phonevarchar(15)联系电话postcodevarchar(6)邮政编码receivernamevarchar(30)收货人姓名paywayvarchar(30)支付方式remarksvarchar(100)备注ordergoods_food 订单包含表字段名属性约束条件说明id 主键int自增orderidint外键订单编号foodidint外键食品编号unitpricedecimal(10,2)订货时单价amountint数量notice 公告表字段名属性约束条件说明id 主键int自增noticedatedatetime公告日期contentvarchar(100)公告内容discuss 评论表字段名属性约束条件说明id 主键int自增foodidint外键食品编号membernamevarchar(30)会员名称contentvarchar(100)评价内容4.3 安全模式设计4.3.1 数据库完整性设计1)实体完整性:保证每个关系应该有一个主码,主码的任何属性都不为空。以下列出个元组的对应的主码关系(“”右边为主码,左边为关系名称):会员会员id、食品食品编号、订单订单编号、类别类别名称、评论(食品编号+会员id)、订单包含(订单编号+食品编号)2)参照完整性:参照完整性要求,参照关系的任何元组在其外码上的值,或者等于被参照关系的某个元组的主码,或者为空值。以下列出个表项之间的参照关系(“”表示参照):食品类别、订单会员、订单包含(食品+订单)、评论(食品+会员)同时,为了保证完整性,在此系统中使用级联更新的方式,若一个被参照关系被删除,则与之关联的元组也会被级联删除。3)用户定义的完整性:不同的关系数据库根据其应用环境的不同,往往还需要一些特殊的约束条件。属性约束:根据具体的应用还设置其属性为char或者是int;关系约束:检查关系的合法取值,比如在此系统中年龄的取值被限定在一个合理的范围之内。4.3.2 数据库权限控制1)数据库用户权限在使用到具体数据库时,必须分配一个合法的身份,在系统数据库设计中,专门为此系统创建了一个新的用户账号,分配到的权限仅仅局限在本系统的食品数据库中。2)会员权限会员并没有对整个数据库的操作权利,会员只能通过程序的一些有限权利的接口进行操作,如食品的浏览,下订单等。3)管理员权限高级管理员对整个系统有最高的权限,能查看任意表现,并修改任意表现内容;普通管理员除了不具有对管理员的管理之外,基本与高级管理员职能相同。5、 系统实现5.1 程序模块设计5.1.1 程序目录结构5.1.2 jsp页面分为会员页面与管理员页面会员页面:管理员:5.1.3 配置文件struts配置文件:spring配置文件:hibernate配置文件:会员部分:管理员部分:5.1.4 类文件action类文件:会员部分:管理员部分:dao类文件:会员部分:管理员部分:orm类文件:会员部分:管理员部分:5.2 主要模块及代码5.2.1 部分配置文件代码web.xml配置文件(struts+spring+hibernate框架整合): contextconfiglocation/web-inf/applicationcontext*.xmlorg.springframework.web.context.contextloaderlistenerstruts-cleanuporg.apache.struts2.dispatcher.actioncontextcleanupstruts-cleanup/*sitemeshcom.opensymphony.module.sitemesh.filter.pagefiltersitemesh/*strutsorg.apache.struts2.dispatcher.filterdispatcherstruts/*imgfs.web.authimgimg/authimg.jpg init.jsp struts.xml文件内容/index.jsp/init.jsp/member/login.jsp/member/signin.jsp/member/setinfo.jsp/member/search.jsp/member/test.jsp/member/fooddisplay.jsp/member/discuss.jsp/member/foodclass.jsp/member/shopping.jsp/member/login.jsp/member/orderform.jsp/member/dealclose.jsp/member/orderform.jsp/member/ordersearch.jsp/init.jspstruts-manager.xml文件内容/manager/manager.jsp/manager/login.jsp/manager/managemana.jsp/manager/managemana.jsp/manager/managemana.jsp/manager/showorder.jsp/manager/managememb.jsp /manager/manager.jsp/manager/adddelclass.jsp /manager/adddelclass.jsp /manager/adddelclass.jsp/picfood/manager/showfood.jsp/manager/showsingleorder.jsp/init.jspapplicationcontext.xml文件 fs/orm/member.hbm.xml fs/orm/notice.hbm.xml fs/orm/discuss.hbm.xml fs/orm/foodclass.hbm.xml fs/orm/foodstuff.hbm.xml fs/orm/ordergoods.hbm.xml fs/orm/ordergoods_food.hbm.xml dwfs/orm/dwmember.hbm.xml dwfs/orm/dwmanager.hbm.xml dwfs/orm/dwfoodclass.hbm.xml dwfs/orm/dwfoodstuff.hbm.xml dwfs/orm/dwordergoods.hbm.xml dwfs/orm/dwordergoods_food.hbm.xml org.hibernate.dialect.sqlserverdialect 5.2.2 主要界面与代码用户界面与主要代码:1) 食品网首页:/*此类完成功能: *首页需要显示的所有信息从数据库中读出 *包括各类食品、公告内容及最热销食品。 */public class indexallaction extends actionsupportprivate inoticedao noticedao;private list notice;private ifoodstuffdao foodstuffdao;private iordergoods_fooddao ordergoods_fooddao;private list hot;private list liefallow;private list pastry;private list chocolate;private list drink;/*getter & setter*/public string execute() throws exceptionthis.setnotice(noticedao.getallnotice();list hot_l=new arraylist();iterator it=(iterator) this.getordergoods_fooddao().findhot(0, 5).iterator();while(it.hasnext()object result=(object) it.next();hot_l.add(foodstuffdao.findbyid(integer)result0);this.sethot(hot_l);this.setliefallow(foodstuffdao.findbyclass(1, 0, 14);this.setpastry(food
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车收费协议合同书
- 公司采购空调合同范本
- 位临时工保安合同协议
- 农村旧房拆除合同范本
- 出租沿街房转让协议书
- 动画模板制作合同协议
- 农村承包水池合同范本
- 动画设计制作合同范本
- 2025年人体解剖联考试题及答案
- 劳务平行发包合同范本
- 企业地震安全教育培训
- 西安鸡蛋行业现状分析
- 柜子安装服务流程
- patran培训教材(有限元分析)
- 汽车设计-汽车 仪表板横梁设计规范模板
- 危急值的报告制度与流程
- 腾讯云大数据云平台TBDS 产品白皮书
- 《创新思维》考试复习题库(含答案)
- 口腔种植学 课件 口腔种植学导论-课件
- 2021年投资学考研真题(含复试)与典型题详解
- 非谓语动词在写作上的应用 课件 【知识导航+拓展迁移】高三英语一轮复习
评论
0/150
提交评论