摘 要 本文的主要工作是对基于B/S模式及JSP技术的基于智能推荐的b2c销售网站进行了研究与设计。本文首先介绍了基于智能推荐的b2c销售网站的背景,分析比较了国内外相关基于智能推荐的b2c销售网站的运行模式、系统特点与开发技术。然后分析了目前热点的各种Web应用开发技术中存在的优势和不足之处,权衡利弊后,选择并重点研究了JSP技术进行开发。然后根据Web应用的特点提出了基于B/S模式、采用JSP技术的Web应用开发方案。最后对基于该方案的基于智能推荐的b2c销售网站进行了功能模块设计、体系结构设计和数据库设计,提出了网站开发过程中的关键技术的研究与选用(如如何获得“及时”信息等),并给出了相应的实现。 关键词:SSI框架,JSP,MySQL,需求分析, Abstract The main work of this paper is to study and design the b2c sales website based on B / S mode and JSP technology based on intelligent recommendation. This paper first introduces the background of b2c sales website based on intelligent recommendation, analyzes and compares the operation mode, system characteristic and development technology of b2c sales website based on intelligent recommendation at home and abroad. And then analyzes the advantages and disadvantages of various Web application development technologies in the current hotspots. After weighing the pros and cons, we choose and focus on the development of JSP technology. And then based on the characteristics of Web applications based on B / S model, the use of JSP technology Web application development program. Finally, the function module design, architecture design and database design of the b2c sales website based on the intelligent recommendation are put forward. The research and selection of key technologies in the process of website development are put forward (such as how to obtain "timely" information, etc.) And gives the corresponding implementation. Keywords: SSI framework, JSP, MySQL, requirements analysis, 目 录 1 绪论 1.1 系统开发的背景 1.2 系统的开发意义 1.3本文的章节安排 2 系统开发环境 2.1 系统平台体系结构选择 2.2 J2EE平台概述 2.2.1 J2EE规范 2.2.2 J2EE体系结构 2.3 SSM框架介绍 3 系统分析 3.1系统可行性分析 3.1.1经济可行性 3.1.2技术可行性 3.1.3操作可行性 3.1.4法律可行性 3.1 需求分析 3.2.1 系统目标 3.2.2 用户需求和模块功能 3.3软件系统的非功能分析 3.7 设计目标 4 系统概要设计 4.1 系统功能模块图 3.2 系统业务流程分析 4.6 人机界面设计 4.3数据库设计 4.2.1 数据库概要设计 4.2.2 E-R图向关系模型的转换 4.2.3 数据表结构 5 系统详细设计与实现 5.1 用户登录 5.2用户注册 5.3产品浏览 5.4购物车管理 5.5订单管理 5.6新闻查看 5.3密码修改 5.2用户管理 5.5商品管理 第六章 系统测试 6.1 测试方法 6.2 测试环境介绍 6.3 功能模块测试 结 论 致 谢 参考文献
1 绪论
1.1 系统开发的背景
为适应国际贸易和商业领域的国际化、信息化和无纸化的需要,电子商务充分利用计算机技术,网络通信技术和因特网,在短短的几年内,迅速发展成为全球的支柱产业,给经济、生活、工作带来综合的革新。我们借助毕业设计这一锲机,以网上购物的形式,尝试建造一个全天侯的网上购物广场,为任何访问本网站的客户提供优质的商业服务、可靠的商业信息、最新的商业机会。
本网站分为购物广场、会员社区、购物车、数据管理四个大模块。其相互之间的结构关系如下:
客户首先进入本网站的首页,即购物广场部分,选购商品,阅读新闻。通过会员注册后,可以登录进入会员社区模块。在这,会员可以享受专为会员设计的聊天室、跳蚤市场等社区功能。也可以在购物广场选购商品,放入购物车,填写相关信息、选择付款形式,经订单确定后,可以向本网站下购物单。这些模块的数据——商品数据、登录数据、客户数据、会员数据、订单数据等都存放在数据库管理系统中,由数据库管理员操作数据库管理程序进行系统管理。
1.2 系统的开发意义
当今社会是一个信息社会,信息已成为继劳动力、土地、资本之后的又一大资源。谁控制的信息越多,谁利用信息资源的效率越高,谁就会在各方面的竞争中占有一席之地, 谁就会有更多的优势。商品管理信息系统是一个销售单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以商品信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但目前还有一些小型企业仍使用传统人工的方式管理,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。
随着科学技术的不断提高,计算机科学日渐成熟,他强大的功能早已为人们所知晓,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机业飞速发展,技术淘汰指标高得惊人,价格下降以及软件应用的快速扩展引发了以信息处理计算机化为标志的“微机革命”。 微型计算机的出现和普及,为信息处理提供了物美价廉的手段,对于推动信息管理系统的使用起到了重要作用。
使用计算机对商品信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、使用时间长、成本低等。这些优点能够极大地提高商品信息管理的效率,也是企业的科学化、正规化管理及与世界接轨的重要条件。
1.3本文的章节安排
该论文一共包括6章:
其一:就是课题的研究背景和意义。针对以SSi为基础的基于智能推荐的b2c销售网站的背景分析和该系统开发的实际意义,并做了详尽地分析说明,还指出了其必要性以及和其他类似应用相比的优势。
其二:关键技术介绍。对A设计部分对纳总结各种核心技术做了整个论文工作考研查询过程设计和数据库了分析说明,同时也针对了数据库的作用做了介绍。
其三:基于智能推荐的b2c销售网站系统分析和设计。本章分两部分,分析部分对系统开发的可行性和系统的开发需求做了分析,设计做了较为详细的介绍。
其四:系统实现。对本软件的基于智能推荐的b2c销售网站功能的实现过程做了介绍,同时也详细地介绍了各个模块的实现过程。
其五:系统测试。行通过对系统进行分析后进了代码设计、输入输出设计和处理过程设计。详细地大部分页面和最核心的代码,最后还对系统做了较为详细的给出了系统的所涉及到的测试分析。
其六:总结与展望。归过程中遇过的问题,并针对本系统做了一些个人评价。
2 系统开发环境
目前在系统的应用开发领域中,主要分成了两种主流的编程体系,一种是基于浏览器的B/S(Brower/Server)的结构,另一种则是C/S(Client/Server)结构,如今相关系统的开发设计中都选择B/S结构,在本次的学校基于智能推荐的b2c销售网站开发设计中,选择的就是开发环境为B/S结构的体系,采用基于SSM的框架,使用JSP技术,后台数据库选择了MySQL。
2.1 系统平台体系结构选择
在本系统中的应用开发领域主要采用了B/S结构。B/S结构即浏览器和服务器结构,是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发,维护和使用。客户机上只要安装一个浏览器,服务器安装了MySQL,Sybase,Informix或SQL Server等数据库,本设计采用的是MySQL数据库,浏览器通过Web Server同数据库进行数据交互。在这种结构下,用户界面主要通过浏览器实现,节约了开发成本。
摘 要 本文的主要工作是对基于B/S模式及JSP技术的基于智能推荐的b2c销售网站进行了研究与设计。本文首先介绍了基于智能推荐的b2c销售网站的背景,分析比较了国内外相关基于智能推荐的b2c销售网站的运行模式、系统特点与开发技术。然后分析了目前热点的各种Web应用开发技术中存在的优势和不足之处,权衡利弊后,选择并重点研究了JSP技术进行开发。然后根据Web应用的特点提出了基于B/S模式、采用JSP技术的Web应用开发方案。最后对基于该方案的基于智能推荐的b2c销售网站进行了功能模块设计、体系结构设计和数据库设计,提出了网站开发过程中的关键技术的研究与选用(如如何获得“及时”信息等),并给出了相应的实现。 关键词:SSI框架,JSP,MySQL,需求分析, Abstract The main work of this paper is to study and design the b2c sales website based on B / S mode and JSP technology based on intelligent recommendation. This paper first introduces the background of b2c sales website based on intelligent recommendation, analyzes and compares the operation mode, system characteristic and development technology of b2c sales website based on intelligent recommendation at home and abroad. And then analyzes the advantages and disadvantages of various Web application development technologies in the current hotspots. After weighing the pros and cons, we choose and focus on the development of JSP technology. And then based on the characteristics of Web applications based on B / S model, the use of JSP technology Web application development program. Finally, the function module design, architecture design and database design of the b2c sales website based on the intelligent recommendation are put forward. The research and selection of key technologies in the process of website development are put forward (such as how to obtain "timely" information, etc.) And gives the corresponding implementation. Keywords: SSI framework, JSP, MySQL, requirements analysis, 目 录 1 绪论 1.1 系统开发的背景 1.2 系统的开发意义 1.3本文的章节安排 2 系统开发环境 2.1 系统平台体系结构选择 2.2 J2EE平台概述 2.2.1 J2EE规范 2.2.2 J2EE体系结构 2.3 SSM框架介绍 3 系统分析 3.1系统可行性分析 3.1.1经济可行性 3.1.2技术可行性 3.1.3操作可行性 3.1.4法律可行性 3.1 需求分析 3.2.1 系统目标 3.2.2 用户需求和模块功能 3.3软件系统的非功能分析 3.7 设计目标 4 系统概要设计 4.1 系统功能模块图 3.2 系统业务流程分析 4.6 人机界面设计 4.3数据库设计 4.2.1 数据库概要设计 4.2.2 E-R图向关系模型的转换 4.2.3 数据表结构 5 系统详细设计与实现 5.1 用户登录 5.2用户注册 5.3产品浏览 5.4购物车管理 5.5订单管理 5.6新闻查看 5.3密码修改 5.2用户管理 5.5商品管理 第六章 系统测试 6.1 测试方法 6.2 测试环境介绍 6.3 功能模块测试 结 论 致 谢 参考文献
1 绪论
1.1 系统开发的背景
为适应国际贸易和商业领域的国际化、信息化和无纸化的需要,电子商务充分利用计算机技术,网络通信技术和因特网,在短短的几年内,迅速发展成为全球的支柱产业,给经济、生活、工作带来综合的革新。我们借助毕业设计这一锲机,以网上购物的形式,尝试建造一个全天侯的网上购物广场,为任何访问本网站的客户提供优质的商业服务、可靠的商业信息、最新的商业机会。
本网站分为购物广场、会员社区、购物车、数据管理四个大模块。其相互之间的结构关系如下:
客户首先进入本网站的首页,即购物广场部分,选购商品,阅读新闻。通过会员注册后,可以登录进入会员社区模块。在这,会员可以享受专为会员设计的聊天室、跳蚤市场等社区功能。也可以在购物广场选购商品,放入购物车,填写相关信息、选择付款形式,经订单确定后,可以向本网站下购物单。这些模块的数据——商品数据、登录数据、客户数据、会员数据、订单数据等都存放在数据库管理系统中,由数据库管理员操作数据库管理程序进行系统管理。
1.2 系统的开发意义
当今社会是一个信息社会,信息已成为继劳动力、土地、资本之后的又一大资源。谁控制的信息越多,谁利用信息资源的效率越高,谁就会在各方面的竞争中占有一席之地, 谁就会有更多的优势。商品管理信息系统是一个销售单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以商品信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但目前还有一些小型企业仍使用传统人工的方式管理,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。
随着科学技术的不断提高,计算机科学日渐成熟,他强大的功能早已为人们所知晓,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机业飞速发展,技术淘汰指标高得惊人,价格下降以及软件应用的快速扩展引发了以信息处理计算机化为标志的“微机革命”。 微型计算机的出现和普及,为信息处理提供了物美价廉的手段,对于推动信息管理系统的使用起到了重要作用。
使用计算机对商品信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、使用时间长、成本低等。这些优点能够极大地提高商品信息管理的效率,也是企业的科学化、正规化管理及与世界接轨的重要条件。
1.3本文的章节安排
该论文一共包括6章:
其一:就是课题的研究背景和意义。针对以SSi为基础的基于智能推荐的b2c销售网站的背景分析和该系统开发的实际意义,并做了详尽地分析说明,还指出了其必要性以及和其他类似应用相比的优势。
其二:关键技术介绍。对A设计部分对纳总结各种核心技术做了整个论文工作考研查询过程设计和数据库了分析说明,同时也针对了数据库的作用做了介绍。
其三:基于智能推荐的b2c销售网站系统分析和设计。本章分两部分,分析部分对系统开发的可行性和系统的开发需求做了分析,设计做了较为详细的介绍。
其四:系统实现。对本软件的基于智能推荐的b2c销售网站功能的实现过程做了介绍,同时也详细地介绍了各个模块的实现过程。
其五:系统测试。行通过对系统进行分析后进了代码设计、输入输出设计和处理过程设计。详细地大部分页面和最核心的代码,最后还对系统做了较为详细的给出了系统的所涉及到的测试分析。
其六:总结与展望。归过程中遇过的问题,并针对本系统做了一些个人评价。
2 系统开发环境
目前在系统的应用开发领域中,主要分成了两种主流的编程体系,一种是基于浏览器的B/S(Brower/Server)的结构,另一种则是C/S(Client/Server)结构,如今相关系统的开发设计中都选择B/S结构,在本次的学校基于智能推荐的b2c销售网站开发设计中,选择的就是开发环境为B/S结构的体系,采用基于SSM的框架,使用JSP技术,后台数据库选择了MySQL。
2.1 系统平台体系结构选择
在本系统中的应用开发领域主要采用了B/S结构。B/S结构即浏览器和服务器结构,是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发,维护和使用。客户机上只要安装一个浏览器,服务器安装了MySQL,Sybase,Informix或SQL Server等数据库,本设计采用的是MySQL数据库,浏览器通过Web Server同数据库进行数据交互。在这种结构下,用户界面主要通过浏览器实现,节约了开发成本。
添加图片注释,不超过 140 字(可选)
图2.1 B/S结构
B/S最大的优点是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装,零维护。对于系统的扩展非常容易。现如今,B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
2.2 J2EE平台概述
J2EE是java2 platform,Enterprise Edition的缩写,它是由美国的Sun Microsystems公司提出的一种用于开发分布式学校级应用程序的技术架构。J2EE提供了一个多层次的分布式应用模型和一系列开发技术规范。J2EE简化了开发大型学校及应用系统的难度。如今,J2EE平台已经成为了开发分布式学校级应用的标准平台之一。
2.2.1 J2EE规范
J2EE平台由一整套服务,应用程序接口和协议构成,它对于开发基于Web的多层应用提供了在功能上的支持,以下对J2EE中的4种技术规范进行描述:
(1)JDBC(Java Database Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径。JDBC对数据库的访问也具有平台无关性。
(2)JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的java代码组成。服务器在页面被客户端请求以后对这些代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
(3)Java Servlet: Servlet是一种小型的Java程序,它扩展了Web服务器的功能。
(4)XML (Extensible Markup Language):XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。
2.2.2 J2EE体系结构
J2EE提供了基于组件的方式来设计,开发,组装和部署学校应用。J2EE使用了多层分布式的应用模型,主要通过以下几层来实现:
(1)客户层,运行在客户计算机上的组件。
(2)Web层,运行在J2EE服务器上的组件。
(3)业务层,运行在J2EE服务器上的组件。
J2EE应用程序是由组件构成的。应用程序客户端和Applet是指运行在客户计算机
上的组件。基于Java Servlet和JSP技术的组件叫做Web组件,主要运行在服务器上。学校Java Bean组件叫业务组件,也运行在服务器上。下面对J2EE的三个应用模型进行简要说明。
(1)客户端
J2EE客户端可以是一个Web组件或者是一个应用程序客户端。主要是Web客户端包括web页面和web浏览器;小应用程序,主要运行在安装了Java虚拟机的web浏览器的客户端;应用程序客户端,主要运行在客户机,可以提供用户界面;Java Bean组件结构,在服务器和客户端两层中包括了基于Java Bean的组件结构,通过Java Bean可以实现数据的流动,可以在应用程序客户或Applet与运行在J2EE服务器上的组件之间,或者是在J2EE服务器和后台数据库之间;J2EE服务的通讯,客户层可以直接与J2EE服务器上运行的业务层之间通讯,也可通过运行在Web层中的Servlet和JSP来实现。
(2)Web组件
J2EE的web组件可以是Servlet或JSP页面。
(3)业务组件
业务组件是指由位于业务层的学校Bean执行的逻辑,这些业务代码能够解决商业
领域上的一些重要的需求。现在主要有三种不同类型的学校Bean:会话Bean,实体Bean和消息驱动Bean。会话Bean代表客户的一次短暂的会话过程。在客户执行完成后,会话Bean以及它所包含的数据也随之流失。实体Bean代表的是持久的数据,既存储在数据库的一行纪录,即使客户终止或者服务器关闭,在J2EE底层确保实体bean的数据被保存下来。
(4)学校信息系统层
学校信息系统层处理学校信息系统的软件,包括学校组织结构系统。
对以上关于J2EE体系结构的概述,可以归纳到以下几个概念,首先EJB即Enterprise Java Bean,是一种组件架构,用于开发和部署面向对象的,分布式的,学校级的应用程序。
EJB包括会话Bean(seSSMon bean)分为无状态会话Bean(stateless seSSMon bean)和有状态会话Bean(stately seSSMon bean),实体Bean(entity bean)分为Bean管理实体Bean和容器管理实体Bean,由于这种Bean对应于数据库中的记录,所以数据库记录的任何改变也被同步到组件池中的相关bean中,这个过程叫做持久性。消息驱动Bean(message-driven bean)。
其次,容器即container,一个实体,它管理组件的生命周期,安全,部署,和运行时服务。每个类型的容器都只提供与相应类型的组件相关的服务。如EJB,WEB,JSP,Applet和应用程序客户端。其中,EJB容器和Web容器都运行在J2EE服务器中。
2.3 SSM框架介绍
1、Springmvc介绍
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow[2]里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
2、Spring框架技术
Spring是一个开源框架,它由Rod Johnson创建。主要是为了解决学校应用开发的复杂性而创建的。Spring使用基本Java Bean来完成由EJB完成的事情。Spring的用途不仅限于服务器端的开发。由于Spring的简单性,可测试性和松耦合性。任何的Java应用可以使用Spring。
Spring是一个轻量级的控制反转(IOC)和面向对象(AOP)的容器框架。
轻量:主要从大小和开销两方面而言。此外,Spring是非侵入式框架,主要体现在,Spring应用中的对象不依赖于Spring特定类。
控制反转:Spring通过一种控制反转(IOC)的技术促进了松耦合。控制反转应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,这样控制权就由应用转移到了外部容器,控制权的转移即所谓的反转。在运行期,由外部容器动态的将依赖对象注入到组件中即称为依赖注入。依赖注入主要有三种方式:接口注入,属性注入,构造函数注入。
面向切面:Spring还提供了面向切面编程的丰富支持,面向切面编程主要是针对业务处理过程的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
容器:Spring包含并管理应用对象的配置和生命周期,它是一种容器,使得用户可以配置自己的每个Bean如何被创建,以及Bean创建单独的实例或生成一个新的实例,及它们之间如何相互关联。
框架:Spring可以将简单组件配置,组合成为复杂的应用。在Spring框架的应用中,应用对象被声明在一个XML文件中。Spring当然也提供了很多方便的基础功能如事务管理,持久化框架集成等等。
基于这些Spring的特征,我们在应用开发中可以编写出更加方便管理,方便测试的优秀代码。同时也为Spring中的各种模块提供了大力的支持。
Spring框架由7个定义明确的模块组成。下面将简要介绍这7个模块。
(1)核心容器:核心容器是Spring框架中最基础的部分,通过依赖注入(Dependency Injection)特征来实现容器对Bean的管理,即是由核心容器提供的。在这其中最基本的概念是Bean Factory,它是任何Spring应用的核心。这里最基本的概念是Bean Factory,Bean Factory是工厂模式的一个实现,它使用IOC将应用配置和依赖说明从实际的应用代码中分离出来。
(2)应用上下文(Context)模块:上下文模块使它成为一个框架。这个模块拓展了Bean Factory的概念。主要增加了对国际化消息,事件传播,以及验证的支持。另外,这个模块还提供了许多学校服务。
(3)Spring的AOP模块:AOP模块是在Spring应用中实现切面编程的基础。AOP主要是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的莫个步骤或阶段,以获得逻辑过程中各个部分之间低耦合的隔离效果。AOP的实现步骤是首先确定连接点(切点),确定处理逻辑调用模式,编写处理逻辑,配置ProxyFactoryBean实例。
(4)JDBC抽象和DAO模式:使用JDBC经常导致大量的重复代码,取得连接,创建语句,处理结果集,然后关闭连接。使用了Spring的JDBC和DAO模块就可以抽取这些没必要的重复代码,保证数据库访问代码干净简介,防止因关闭数据库资源失败而引起的其它问题。另外,这个模块还是用了Spring的AOP模块为Spring应用中的对象提供了事务管理服务。
(5)对象/关系映射集成模块:Spring还提供了ORM模块个使用对象/关系映射工具的用户。Spring并不是实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括如Hibernate,JDO和IBATIS SOL映射。Spring的事务管理则支持这些经典的ORM框架。
(6)Spring的Web模块:Web上下文模块建立与应用上下文模块之上。这个模块提供了面向服务的支持。
(7)Spring的MVC框架:Spring为构建Web应用提供了一个功能全面的MVC框架。Spring的MVC框架使用IOC实现了控制逻辑和业务对象的弯曲分离。
通过以上内容我们对Spring框架的详细介绍,我们了解到由于spring框架的自身特点使得J2EE更加容易使用,面向接口而不是针对类编程,减轻了开发的复杂度,Spring框架还会帮助我们,使代码的测试更加简单,同时Java Bean提供了应用程序配置的最好方法。Spring框架技术的出现让我们这些Web开发的用户获益匪浅。
3、IBatis简介
Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架,和Hibernate、Toplink等在java编程的对象持久化方面深受开发人员欢迎。
对象关系映射(ORM):简单原理是通过面向对象方式操作关系型数据库,目前存储数据最常用最流行的工具是关系型数据库,其操作方式是通过 SQL语句操作数据库的表,但是对于Java面向对象编程语言中,所有的操作对象都是对象,因此对象关系映射就是把数据库表和java编程语言中的对象对 应起来,把表的列同java对象中的字段对应起来,程序员在程序开发过程中不再是使用原始SQL语句去直接操作数据库,而是通过ORM提供的查询语句操作 普通的java对象,ORM将其提供的对普通java对象的查询语句翻译成SQL语句来操作数据库,从而屏蔽了不同数据库SQL语句的差别,简化了程序开 发工作,提高了程序的可移植性。
2.Ibatis开发的准备工作:
(1).将Ibaits相关的jar包添加到工程的类路径下。
(2).Ibatis工程的主要配置文件为:
a.Ibatis的总配置文件SqlMapConfig.xml。
b.Ibatis的实体映射文件。
3 系统分析
本章将从整体上描述系统的需求,根据需求确定了系统的整体结构和数据库设计方案,对系统各部分的功能进行了划分并描述了系统架构的设计思路。本文将详细的分析系统的续期功能的设计及实现方法。
3.1系统可行性分析
对于系统的可行性分析,也许我们并不陌生,究其目的,要意识到对于该问题的几种方法的可能潜在的利弊,然后才能得出准确的判断,看原来设置的目标能不能实现,其实这个也就是要在一个比较高端的角度,以不是很具体的方式来做一个整体的分析和设计,就是这样的一个过程。
应用的可行性包括许多方面,整体来讲可以概括为三点,首先是经济上的可行性,毕竟这是任何人都不得不面对的问题;其次,技术上也必须可行,不可脱离实际;最后,操作和法律上的可行性也是不可或缺的。经过一系列的研发之后,还有进行运行和实际操作,从发展的眼光来看,还要考虑这个系统的可持续发展性,一个成功的基于智能推荐的b2c销售网站平台,也许在硬件设备上是有一定的局限性,进一步的优化和创新乃至突破是非常重要的。
3.1.1经济可行性
该系统的研发在经济上并没有非常大的需求,商品信息的获取也只需较少的费用。同时,目的也并非是十分的复杂,这样并不实用,研发的时间整体上来说很长,事实上它达到了为用户带来方便的目的,还可以让该应用有很大的发展空间,这样的话,那它所产生的回报会高于支出。Java平台是一个非常自由的平台,开发人员的经济支出其实是有限的。这样会在很大程度上提升该系统的高效性这一特点,然后就能为研发工作创造一个良好的条件和基础。结果证实,本系统的开发确实科学性较强。
3.1.2技术可行性
该应用采用的是基于JavaEE开发,现阶段来讲,Java发展已经相当成熟,并且以Java为开发平台的研发日益增多,受到很多研发工作人员的欢迎。所以,技术层面上Javaee其实是能够完成这个平台开发的任务。因此系统开发在技术上是可行的。
3.1.3操作可行性
对于软件来讲,开发之后其操作难度决定了它能否受到大规模推广,这是研发者必须考虑的问题,而本基于智能推荐的b2c销售网站就非常易于操作。使用者能够拥有一个浏览器设备,根本就不需要指导,很自然的就能够自己学会使用,操作完全没有复杂性,因此,在开发这个软件的时候,我并没有提供提示或者帮助这类功能,这完全不影响。多以,该系统在操作上来说,都是广大群众非常熟练的模式,一切的操作都很简单,易于上手。
3.1.4法律可行性
该系统无论在哪一方面都有十分详尽的考虑,包括技术,经济等等,事实上,它也绝不会有任何的法律问题,完全具有法律的可行性,其研发能够进行。
3.1 需求分析
3.2.1 系统目标
本系统的目标是要完成一个基于B/S架构的基于智能推荐的b2c销售网站功能的设计和开发。这些模块主要包括服装订购管理、用户管理、订单管理、商品管理等功能。实现对基于智能推荐的b2c销售网站信息进行管理,实现管理自动化,系统化,规范化。本系统开发过程主要采用基于SSI框架技术,使用JSP页面技术,后台数据库采用MySQL开发而成,保证查询,添加,删除,修改等功能。
3.2.2 用户需求和模块功能
1、注册用户:订单管理、退货管理、新闻查看、产品购买、购物车管理、账户管理。
添加图片注释,不超过 140 字(可选)
管理员:订单管理、商品管理、客户管理、广告管理、新闻管理、支付配送管理、销售统计
添加图片注释,不超过 140 字(可选)
3.3软件系统的非功能分析
软件的非功能需求是约束系统、支持功能实现的相关需求,包括软件的效率、可靠性、安全性、可用性、适应性等。由于本软件的用户量较大应满足以下非功能需求:
(1)效率:基于智能推荐的b2c销售网站数据库访问速度最大延迟为1秒,允许多个用户并行访问,访问站点不能超过2秒的延迟时间。
(2)可靠性:保证系统正常工作,具有抗干扰能力,能够对系统检测并自动纠错。出现故障时不会发生崩溃,并且功能重新恢复。
(3)安全性:保证信息的可用性、完整性、机密性、用户身份认证。
(4)可用性:界面友好、容易学习、方便用户使用。
(5)适应性:系统能能够适应外部环境及需求的变化。
3.7 设计目标
设计与实现一个基于智能推荐的b2c销售网站。能够辅助管理员对基于智能推荐的b2c销售网站信息的管理。
在构建系统时,根据不同的模块的特点和功能,新系统必需满足以下目标:
(1)稳定性:保证系统能够稳定的运行,部分硬件的变化不会影响到系统的整体运行,同时系统的运行也不会受到其他错误模块的影响。
(2)准确性:根据官方的操作指南,使用系统管理员操作所产生的“权限数据”,应该是符合所有数据库的实际状态,它是禁止记录错误和错位数据等现象。
(3)开放性:系统可以在保证兼容性的硬件基础上,进行多个站点的操作,作为在Java平台的基础上架构的该系统具有独立的平台,在不同的环境下,具有独立处理能力。
(4)可扩展性:如果有新的业务增加,不需要改变原有系统,你只需要进行扩展。
(5)可维护性:接口参数的变化不需要再写代码,从而大大方便了二次开发。
(6)独立性:尽量减少模块之间的链接,这样用户可以自主选择模块需要安装或不需要安装的模块。
(7)易使用性:系统的用户界面和操作员之间的交互性非常的好,同时和主机使用B/S模式。
(8)先进性:使系统能够跟上技术的发展,不过时。在保证系统稳定性的前提下,我们可以尝试更多的国际上的流行技术。
4 系统概要设计
概要设计的主要任务是把需求分析得到DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分,建立模块的层次结构及调用关系,确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述,确定数据的结构特性,以及数据库的设计,显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。
4.1 系统功能模块图
经过对系统的需求分析的了解,我们对系统的功能模块进行了划分,图4.1是本系统所涉及的功能模块图。
1、注册用户:订单管理、退货管理、新闻查看、产品购买、购物车管理、账户管理。
添加图片注释,不超过 140 字(可选)
管理员:订单管理、商品管理、客户管理、广告管理、新闻管理、支付配送管理、销售统计
添加图片注释,不超过 140 字(可选)
图4.1 功能模块图
3.2 系统业务流程分析
添加图片注释,不超过 140 字(可选)
4.6 人机界面设计
人机界面设计是接口设计的一个组成部分。对于人机交互系统,人机界面设计和数据设计、架构设计、工艺设计等都是重要的。近年来,人机界面在系统中的比例越来越大,个人设计的人机界面在系统中的工作量甚至占到总设计的一半以上。
人机界面设计的质量,直接影响到用户对软件产品的评价,从而影响到软件产品的竞争力和使用寿命,因此,必须给予足够的重视人机界面的设计。
本系统的用户在使用该系统时,首先要通过用户登录模块对身份进行验证,当确认正确后可进入系统。每个模块都具有自己的页面和功能,根据人机界面设计指南和模块功能可以设计用户界面。
4.3数据库设计
在一个数据库应用系统的开发过程中,数据库的设计是整个系统的基础。良好的数据结构设计不仅可以减少数据冗余、提高查询效率,而且还可以降低应用程序的编写难度,提高工作效率。
4.2.1 数据库概要设计
概念设计是在分析数据的基础上建立了系统的分析和数据库设计,然后从前面分析的角度,将设计的观点整合在一起,最终完成了系统的结构分析和优化设计。
一般的数据库结构的概念,是一个实体和属性的关系模型。E-R模型一般拥有实体、属性和联系等多方面的信息,E-R模型采用的是E-R图来表示,需要提示用户工作中所以需要用到的事物,属性则是对实体信息的表述。
概念设计的目标是需要反映出系统所要求的数据库概念的结构,也就是概念模型。概念模式是独立于数据库的逻辑结构的,并且是一个独立的DBMS,不需要去依赖计算机系统的。
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。
添加图片注释,不超过 140 字(可选)
4.2.2 E-R图向关系模型的转换
关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:
(1) 实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性及为关系模式的属性,实体标识符及为关系模式的键。
(2) 联系类型的转换,根据不同的情况做不同的处理:
①若实体间的联系是1:1,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一各关系模式的键和联系类型的属性。
② 若实体间的联系1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
③若实体间的联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上关系类型的属性,而键为两端实体间的组合。
依照该规则将网上招聘求职系统的E-R图转换为关系模型如下:
将每一个实体转换成一个关系(关系就是给出关系名,写出属性,并标明该关系的主键)。
管理员信息(流水号,管理员帐号,管理员密码)
用户信息(流水号,姓名,编号号,年龄,性别,用户名,密码,邮箱,QQ)
4.2.3 数据表结构
建立一个良好的数据库,需要追寻一下原则:
1. 尽量较少数据沉余和重复。
2. 操作设计和结构设计相结合。
3. 数据结构具有相对的稳定性。
根据系统的需求分析,同时又根据相关部分数据流程,本系统共创建了3长表,
以下为数据库中的表:
数据库名:egorder3
表名:advertise
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | subject | varchar | 128 | 是 | ||||||
4 | content | text | 是 | |||||||
5 | pic_id | varchar | 32 | 是 | ||||||
6 | pic | varchar | 128 | 是 | ||||||
7 | level | int | 11 | 是 | ||||||
8 | place_id | varchar | 32 | 是 | ||||||
9 | place | varchar | 128 | 是 | ||||||
10 | type | varchar | 32 | 是 | ||||||
11 | creator_id | varchar | 32 | 是 | ||||||
12 | creator_name | varchar | 64 | 是 | ||||||
13 | create_time | datetime | 是 | |||||||
14 | modifier_id | varchar | 32 | 是 | ||||||
15 | modifier_name | varchar | 64 | 是 | ||||||
16 | modify_time | datetime | 是 | |||||||
17 | state | varchar | 1 | 是 | c | |||||
18 | url | varchar | 1000 | 是 |
表名:area
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | parent_id | varchar | 32 | 否 | ||||||
3 | code | varchar | 16 | 是 | ||||||
4 | name | varchar | 256 | 是 | ||||||
5 | level | int | 11 | 是 | ||||||
6 | sort | int | 11 | 是 | ||||||
7 | creator_id | varchar | 32 | 是 | ||||||
8 | creator_name | varchar | 100 | 是 | ||||||
9 | create_time | datetime | 是 | |||||||
10 | modifier_id | varchar | 32 | 是 | ||||||
11 | modifier_name | varchar | 100 | 是 | ||||||
12 | modify_time | datetime | 是 | |||||||
13 | state | varchar | 1 | 是 | s |
表名:customer
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | operator_id | varchar | 32 | 是 | ||||||
3 | operator_name | varchar | 100 | 是 | ||||||
4 | name | varchar | 100 | 是 | ||||||
5 | code | varchar | 32 | 是 | ||||||
6 | account | varchar | 32 | 是 | ||||||
7 | pwd | varchar | 32 | 是 | ||||||
8 | vip_level_id | varchar | 32 | 是 | ||||||
9 | vip_level_name | varchar | 100 | 是 | ||||||
10 | payment_id | varchar | 32 | 是 | ||||||
11 | payment_code | varchar | 32 | 是 | ||||||
12 | payment_name | varchar | 100 | 是 | ||||||
13 | company_name | varchar | 100 | 是 | ||||||
14 | company_address | varchar | 256 | 是 | ||||||
15 | machine_brand | varchar | 32 | 是 | ||||||
16 | machine_model | varchar | 32 | 是 | ||||||
17 | linkman | varchar | 100 | 是 | ||||||
18 | mobile | varchar | 32 | 是 | ||||||
19 | telephone | varchar | 32 | 是 | ||||||
20 | | varchar | 64 | 是 | ||||||
21 | remark | varchar | 512 | 是 | ||||||
22 | creator_id | varchar | 32 | 是 | ||||||
23 | creator_name | varchar | 100 | 是 | ||||||
24 | create_time | datetime | 是 | |||||||
25 | modifier_id | varchar | 32 | 是 | ||||||
26 | modifier_name | varchar | 100 | 是 | ||||||
27 | modify_time | datetime | 是 | |||||||
28 | state | varchar | 1 | 是 | s |
表名:delivery
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 否 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | delivery_fee | decimal | 18 | 2 | 是 | |||||
5 | remark | varchar | 512 | 是 | ||||||
6 | creator_id | varchar | 32 | 是 | ||||||
7 | creator_name | varchar | 100 | 是 | ||||||
8 | create_time | datetime | 是 | |||||||
9 | modifier_id | varchar | 32 | 是 | ||||||
10 | modifier_name | varchar | 100 | 是 | ||||||
11 | modify_time | datetime | 是 | |||||||
12 | state | varchar | 1 | 是 | s |
表名:dictionary
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 128 | 是 | ||||||
4 | sort | int | 11 | 是 | ||||||
5 | state | varchar | 1 | 是 | s |
表名:dictionary_item
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | dictionary_id | varchar | 32 | 是 | ||||||
3 | code | varchar | 64 | 是 | ||||||
4 | name | varchar | 128 | 是 | ||||||
5 | sort | int | 11 | 是 |
表名:file_upload
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | app_id | varchar | 32 | 是 | ||||||
3 | app_type | varchar | 32 | 是 | ||||||
4 | create_time | datetime | 是 | |||||||
5 | postfix | varchar | 8 | 是 | ||||||
6 | original_name | varchar | 64 | 是 | ||||||
7 | relative_path | varchar | 128 | 是 |
表名:good
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 否 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | good_type_name | varchar | 100 | 是 | ||||||
5 | good_type_id | varchar | 32 | 是 | ||||||
6 | unit | varchar | 8 | 是 | ||||||
7 | shape | varchar | 32 | 是 | ||||||
8 | price | decimal | 18 | 2 | 是 | |||||
9 | weight | double | 18 | 2 | 是 | 0.00 | ||||
10 | stock | double | 是 | |||||||
11 | pic_id | varchar | 32 | 是 | ||||||
12 | pic | varchar | 128 | 是 | ||||||
13 | remark | text | 是 | |||||||
14 | creator_id | varchar | 32 | 是 | ||||||
15 | creator_name | varchar | 100 | 是 | ||||||
16 | create_time | datetime | 是 | |||||||
17 | modifier_id | varchar | 32 | 是 | ||||||
18 | modifier_name | varchar | 100 | 是 | ||||||
19 | modify_time | datetime | 是 | |||||||
20 | state | varchar | 1 | 是 | c | |||||
21 | daily_net_sales | int | 11 | 是 | ||||||
22 | pic1_id | varchar | 32 | 是 | ||||||
23 | pic1 | varchar | 128 | 是 | ||||||
24 | pic2_id | varchar | 32 | 是 | ||||||
25 | pic2 | varchar | 128 | 是 | ||||||
26 | pic3_id | varchar | 32 | 是 | ||||||
27 | pic3 | varchar | 128 | 是 | ||||||
28 | pic4_id | varchar | 32 | 是 | ||||||
29 | pic4 | varchar | 128 | 是 | ||||||
30 | pic5_id | varchar | 32 | 是 | ||||||
31 | pic5 | varchar | 128 | 是 |
表名:good_specification
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 16 | 是 | ||||||
3 | name | varchar | 64 | 是 | ||||||
4 | show_type | varchar | 1 | 否 | 0 | |||||
5 | show_way | varchar | 1 | 否 | 1 | |||||
6 | remark | varchar | 512 | 是 | ||||||
7 | sort | int | 11 | 是 | ||||||
8 | creator_id | varchar | 32 | 是 | ||||||
9 | creator_name | varchar | 64 | 是 | ||||||
10 | create_time | datetime | 是 | |||||||
11 | modifier_id | varchar | 32 | 是 | ||||||
12 | modifier_name | varchar | 64 | 是 | ||||||
13 | modify_time | datetime | 是 | |||||||
14 | state | varchar | 1 | 是 | s |
表名:good_specification_val
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | good_specification_id | varchar | 32 | 是 | ||||||
3 | value | varchar | 64 | 是 | ||||||
4 | sort | int | 11 | 是 | ||||||
5 | state | varchar | 1 | 是 | s |
表名:good_type
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | parent_id | varchar | 32 | 是 | ||||||
3 | code | varchar | 16 | 是 | ||||||
4 | name | varchar | 100 | 是 | ||||||
5 | level | int | 11 | 是 | ||||||
6 | remark | varchar | 512 | 是 | ||||||
7 | sort | int | 11 | 是 | ||||||
8 | creator_id | varchar | 32 | 是 | ||||||
9 | creator_name | varchar | 100 | 是 | ||||||
10 | create_time | datetime | 是 | |||||||
11 | modifier_id | varchar | 32 | 是 | ||||||
12 | modifier_name | varchar | 100 | 是 | ||||||
13 | modify_time | datetime | 是 | |||||||
14 | state | varchar | 1 | 是 | c |
表名:goods_complaints
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | contract_number | varchar | 32 | 是 | ||||||
4 | few | varchar | 32 | 是 | ||||||
5 | pic_id | varchar | 32 | 是 | ||||||
6 | pic | varchar | 128 | 是 | ||||||
7 | main_drive_form | varchar | 32 | 是 | ||||||
8 | machine_model | varchar | 32 | 是 | 否 | |||||
9 | thickness | varchar | 16 | 是 | ||||||
10 | machine_condition | varchar | 16 | 是 | ||||||
11 | mold_types | varchar | 16 | 是 | ||||||
12 | punch_structure | varchar | 32 | 是 | ||||||
13 | shape | varchar | 32 | 是 | ||||||
14 | gap | varchar | 8 | 是 | ||||||
15 | maintenance | varchar | 16 | 是 | ||||||
16 | view_waste | varchar | 128 | 是 | ||||||
17 | questions | text | 是 | |||||||
18 | stamping_plate | varchar | 32 | 是 | ||||||
19 | punch_methods | varchar | 64 | 是 | ||||||
20 | wear_turret_hole | varchar | 64 | 是 | ||||||
21 | guide_button_wear | varchar | 64 | 是 | ||||||
22 | mold_base_support | varchar | 64 | 是 | ||||||
23 | opinion | varchar | 512 | 是 | ||||||
24 | creator_id | varchar | 32 | 是 | ||||||
25 | creator_name | varchar | 100 | 是 | ||||||
26 | create_time | datetime | 是 | |||||||
27 | modifier_id | varchar | 32 | 是 | ||||||
28 | modifier_name | varchar | 64 | 是 | ||||||
29 | modify_time | datetime | 是 | |||||||
30 | state | varchar | 11 | 是 |
表名:information
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | type | char | 1 | 是 | ||||||
4 | title | varchar | 128 | 是 | ||||||
5 | content | text | 是 | |||||||
6 | creator_id | varchar | 32 | 是 | ||||||
7 | creator_name | varchar | 100 | 是 | ||||||
8 | create_time | datetime | 是 | |||||||
9 | modifier_id | varchar | 32 | 是 | ||||||
10 | modifier_name | varchar | 100 | 是 | ||||||
11 | modify_time | datetime | 是 | |||||||
12 | state | varchar | 1 | 是 | s |
表名:message
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | type | char | 1 | 是 | ||||||
3 | title | varchar | 128 | 是 | ||||||
4 | content | text | 是 | |||||||
5 | recipient_id | varchar | 32 | 是 | ||||||
6 | recipient_name | varchar | 100 | 是 | ||||||
7 | creator_id | varchar | 32 | 是 | ||||||
8 | creator_name | varchar | 100 | 是 | ||||||
9 | create_time | datetime | 是 | |||||||
10 | state | varchar | 1 | 是 | s |
表名:order_good
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | order_id | varchar | 32 | 是 | ||||||
3 | good_id | varchar | 32 | 是 | ||||||
4 | standard | varchar | 512 | 是 | ||||||
5 | number | decimal | 18 | 2 | 是 | |||||
6 | price | decimal | 18 | 2 | 是 | |||||
7 | money | decimal | 18 | 2 | 是 | |||||
8 | remark | varchar | 512 | 是 | ||||||
9 | attachment_id | varchar | 32 | 是 | ||||||
10 | attachment_name | varchar | 150 | 是 | ||||||
11 | sort | int | 11 | 是 | ||||||
12 | isReturn | varchar | 11 | 是 |
表名:orders
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | handler_name | varchar | 100 | 是 | ||||||
4 | handler_id | varchar | 32 | 是 | ||||||
5 | remark | varchar | 512 | 是 | ||||||
6 | customer_id | varchar | 32 | 是 | ||||||
7 | customer_name | varchar | 100 | 是 | ||||||
8 | is_tax | char | 1 | 是 | 1 | |||||
9 | discount | double | 18 | 2 | 是 | 0.85 | ||||
10 | good_money | decimal | 18 | 2 | 是 | 0.00 | ||||
11 | order_money | decimal | 18 | 2 | 是 | 0.00 | ||||
12 | tax_money | decimal | 18 | 2 | 是 | 0.00 | ||||
13 | discount_money | decimal | 18 | 2 | 是 | 0.00 | ||||
14 | payment_id | varchar | 32 | 是 | ||||||
15 | payment_code | varchar | 32 | 是 | ||||||
16 | payment_name | varchar | 100 | 是 | ||||||
17 | delivery_id | varchar | 32 | 是 | ||||||
18 | delivery_name | varchar | 100 | 是 | ||||||
19 | delivery_fee | decimal | 18 | 2 | 是 | |||||
20 | delivery_address | varchar | 256 | 是 | ||||||
21 | delivery_mobile | varchar | 16 | 是 | ||||||
22 | delivery_telphone | varchar | 16 | 是 | ||||||
23 | post_code | varchar | 8 | 是 | ||||||
24 | linkman | varchar | 100 | 是 | ||||||
25 | flow_state | int | 11 | 是 | ||||||
26 | pay_state | char | 1 | 是 | ||||||
27 | creator_id | varchar | 32 | 是 | ||||||
28 | creator_name | varchar | 100 | 是 | ||||||
29 | create_time | datetime | 是 | |||||||
30 | modifier_id | varchar | 32 | 是 | ||||||
31 | modifier_name | varchar | 100 | 是 | ||||||
32 | modify_time | datetime | 是 | |||||||
33 | state | varchar | 1 | 是 | c | |||||
34 | order_express | varchar | 32 | 是 | ||||||
35 | delivery_time | datetime | 是 | |||||||
36 | remind | varchar | 32 | 是 | ||||||
37 | isReturn | varchar | 11 | 是 |
表名:payment
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | payment_fee | decimal | 18 | 2 | 是 | |||||
5 | vip_level_id | varchar | 256 | 是 | ||||||
6 | vip_level_name | varchar | 256 | 是 | ||||||
7 | remark | varchar | 512 | 是 | ||||||
8 | creator_id | varchar | 32 | 是 | ||||||
9 | creator_name | varchar | 100 | 是 | ||||||
10 | create_time | datetime | 是 | |||||||
11 | modifier_id | varchar | 32 | 是 | ||||||
12 | modifier_name | varchar | 100 | 是 | ||||||
13 | modify_time | datetime | 是 | |||||||
14 | state | varchar | 1 | 是 | s |
表名:received_address
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | customer_id | varchar | 32 | 是 | ||||||
3 | address | varchar | 256 | 是 | ||||||
4 | zip_code | varchar | 8 | 是 | ||||||
5 | linkman | varchar | 100 | 是 | ||||||
6 | mobile | varchar | 30 | 是 | ||||||
7 | telephone | varchar | 30 | 是 | ||||||
8 | sort | int | 11 | 是 |
表名:serial_number
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | app_type | varchar | 100 | 否 | ||||||
3 | serial_date | datetime | 是 | |||||||
4 | number | int | 11 | 是 | ||||||
5 | type | varchar | 1 | 是 |
表名:sms_receive
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | msgid | varchar | 32 | 是 | ||||||
3 | sender | varchar | 100 | 是 | ||||||
4 | content | varchar | 1024 | 是 | ||||||
5 | create_time | datetime | 是 |
表名:sms_send
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | sender | varchar | 100 | 是 | ||||||
3 | receiver | varchar | 1600 | 是 | ||||||
4 | content | varchar | 1024 | 是 | ||||||
5 | create_time | datetime | 是 | |||||||
6 | state | varchar | 1 | 是 | c |
表名:supplier
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 150 | 是 | ||||||
4 | address | varchar | 256 | 是 | ||||||
5 | payables | decimal | 18 | 2 | 是 | |||||
6 | receivables | decimal | 18 | 2 | 是 | |||||
7 | linkman | varchar | 100 | 是 | ||||||
8 | mobile | varchar | 30 | 是 | ||||||
9 | telphone | varchar | 30 | 是 | ||||||
10 | | varchar | 64 | 是 | ||||||
11 | area_ids | varchar | 128 | 是 | ||||||
12 | area_names | varchar | 256 | 是 | ||||||
13 | street | varchar | 256 | 是 | ||||||
14 | zip_code | varchar | 30 | 是 | ||||||
15 | creator_id | varchar | 32 | 是 | ||||||
16 | creator_name | varchar | 100 | 是 | ||||||
17 | create_time | datetime | 是 | |||||||
18 | modifier_id | varchar | 32 | 是 | ||||||
19 | modifier_name | varchar | 100 | 是 | ||||||
20 | modify_time | datetime | 是 | |||||||
21 | state | varchar | 1 | 是 | s |
表名:sys_power
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | creator_id | varchar | 32 | 是 | ||||||
5 | creator_name | varchar | 100 | 是 | ||||||
6 | create_time | datetime | 是 | |||||||
7 | modifier_id | varchar | 32 | 是 | ||||||
8 | modifier_name | varchar | 100 | 是 | ||||||
9 | modify_time | datetime | 是 | |||||||
10 | state | varchar | 1 | 是 | s |
表名:sys_role
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | creator_id | varchar | 32 | 是 | ||||||
5 | creator_name | varchar | 100 | 是 | ||||||
6 | create_time | datetime | 是 | |||||||
7 | modifier_id | varchar | 32 | 是 | ||||||
8 | modifier_name | varchar | 100 | 是 | ||||||
9 | modify_time | datetime | 是 | |||||||
10 | state | varchar | 1 | 是 | s |
表名:sys_role_power
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | role_id | varchar | 32 | 否 | ||||||
3 | power_id | varchar | 32 | 否 | ||||||
4 | sort | int | 11 | 是 |
表名:sys_user
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | role_id | varchar | 32 | 是 | ||||||
5 | role_code | varchar | 32 | 是 | ||||||
6 | role_name | varchar | 100 | 是 | ||||||
7 | pwd | varchar | 32 | 是 | ||||||
8 | telphone | varchar | 30 | 是 | ||||||
9 | mobile | varchar | 30 | 是 | ||||||
10 | | varchar | 96 | 是 | ||||||
11 | company | varchar | 100 | 是 | ||||||
12 | address | varchar | 256 | 是 | ||||||
13 | operator_id | varchar | 32 | 是 | ||||||
14 | operator_name | varchar | 100 | 是 | ||||||
15 | creator_id | varchar | 32 | 是 | ||||||
16 | creator_name | varchar | 100 | 是 | ||||||
17 | create_time | datetime | 是 | |||||||
18 | modifier_id | varchar | 32 | 是 | ||||||
19 | modifier_name | varchar | 100 | 是 | ||||||
20 | modify_time | datetime | 是 | |||||||
21 | state | varchar | 1 | 是 | s | |||||
22 | begin | date | 是 | |||||||
23 | end | date | 是 |
表名:vip_level
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | code | varchar | 32 | 是 | ||||||
3 | name | varchar | 100 | 是 | ||||||
4 | vip_discount | double | 是 | |||||||
5 | remark | varchar | 512 | 是 | ||||||
6 | creator_id | varchar | 32 | 是 | ||||||
7 | creator_name | varchar | 100 | 是 | ||||||
8 | create_time | datetime | 是 | |||||||
9 | modifier_id | varchar | 32 | 是 | ||||||
10 | modifier_name | varchar | 100 | 是 | ||||||
11 | modify_time | datetime | 是 | |||||||
12 | state | varchar | 1 | 是 | s |
表名:ware
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | good_id | varchar | 32 | 是 | ||||||
3 | code | varchar | 16 | 是 | ||||||
4 | stock | int | 11 | 是 | ||||||
5 | price_discount | decimal | 18 | 2 | 是 | |||||
6 | good_price | decimal | 18 | 2 | 是 | |||||
7 | sort | int | 11 | 是 | ||||||
8 | pic | varchar | 1000 | 是 | ||||||
9 | pic_id | varchar | 1000 | 是 | ||||||
10 | good_val_id | varchar | 32 | 是 | ||||||
11 | good_val | varchar | 1000 | 是 |
表名:ware_specification_val
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | varchar | 32 | 是 | 否 | |||||
2 | ware_id | varchar | 32 | 是 | ||||||
3 | good_specification_val_id | varchar | 32 | 是 | ||||||
4 | sort | int | 11 | 是 |
5 系统详细设计与实现
详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。详细设计的主要任务是设计每个模块的实现算法,所需的局部数据结构。
本章将使用图形,代码,语言等工具将系统的每个模块处理过程的详细算法描述出来。
5.1 用户登录
用户登陆模块最基本的作用是为了限制该管理系统资源的使用,只有经过身份确认的操作员才能对其个性化电子商务推荐系统进行相关操作。其基本过程是从客户端取得提交的用户名和密码,然后到数据库中进行核对。如果该信息在数据库中存在,那么就可以成功登录到下一界面,否则就会被该系统拒之门外。
选择连接数据库后,进入用户登陆界面。在用户登陆界面中输入用户名和密码,从数据库表中检查是否有相应的用户名和密码。如果用户名和密码错误,系统就会给出错误提示,并且不会有任何的页面跳转。如果输入的用户名和相应密码正确,则可以点击“确定”进入主控制平台。用户登陆的界面如图4.1所示。
添加图片注释,不超过 140 字(可选)
5.2用户注册
用户点击网站首页的注册链接并跳转到注册页面,在注册页面上填写上必填的手机号、密码相关的用户信息。当用户提交时,先由页面判断是否符合提交的基础要求,符合要求则向服务器提交表单数据。如果填写不正确,就会弹出错误提示框,让用户重新输入。
注册模块如图所示:
添加图片注释,不超过 140 字(可选)
5.3产品浏览
注册用户登录系统可以查看系统的产品信息。
添加图片注释,不超过 140 字(可选)
5.4购物车管理
在该模块中,用户必须注册成为会员才可以在有效登录时间内在网站进行订购,未注册的用户或注册失败的会员只可以浏览物品或宠物,不可以把商品添加到购物车中。在购物车中,用户可以输入购买商品的数量,也可以删除购物车中的商品。
添加图片注释,不超过 140 字(可选)
5.5订单管理
在该模块中,用户必须注册成为会员才可以在有效登录时间内查看订单状态,包括订购的日期、订购数量还有商品是否已发货。界面如图所示。
添加图片注释,不超过 140 字(可选)
1.描述:管理员点击左侧的菜单“订单管理”,页面跳转到订单信息管理界面,从数据库中查询出所有的订单信息,并把这些信息显示到页面中。主要包括订单信息。点击修改按钮实现订单信息的修改操作。
2.程序效果图如下图4.11所示
添加图片注释,不超过 140 字(可选)
5.6新闻查看
用户可以查看商城的新闻信息。
添加图片注释,不超过 140 字(可选)
5.3密码修改
为了可以更好的、更方便的对用户信息进行管理,读者可以进行密码修改的操作,以确保个人账户的安全。用户登录成功后,在主页面中通过“修改密码”的链接就可以直接进行个人密码的修改操作。密码修改页面中将会显示当前用户的用户名信息,用户在页面中需要输入原来使用的密码、新密码和确认的新密码,用户点击“修改”按钮完成修改,点击“重置”按钮可以将用户输入的信息清空,方便用户重新输入信息。
密码修改的界面如图所示。
添加图片注释,不超过 140 字(可选)
5.2用户管理
1.描述:管理员点击左侧的菜单“用户管理”,页面跳转到用户信息管理界面,从数据库中查询出所有的用户信息,并把这些信息显示到页面中。主要包括用户名、类型信息。点击添加按钮实现用户信息的添加操作。
2.程序效果图如下图4.11所示
添加图片注释,不超过 140 字(可选)
5.5商品管理
1.描述:管理员点击左侧的菜单“商品管理”,页面跳转到商品信息管理界面,从数据库中查询出所有的商品信息,并把这些信息显示到页面中。主要包括商品信息。点击添加按钮实现商品信息的添加操作。
2.程序效果图如下图4.11所示
添加图片注释,不超过 140 字(可选)
第六章 系统测试
在设计系统和系统开发的过程中,我们常常会遇到一些错误,有时是一些简单的语法错误,对于语句的语法错误,我们再编码的时候很多的开发工具就能够识别出来从而很容易发现并改正;还有一些错误是很难发现的,开发工具也不会给出提示,只有在我们运行程序是才会报错,这就需要我们对程序进行调试,如果遇到这种错误我们可以通过加断点或者打印语句等方法来定位错误,再根据错误信息改正错误。
系统开发完成后,测试环节是必不可少的。系统在开发过程中,首先分析需求和设计阶段得出的结论,用来确定测试的目的和范围。系统测试有单元测试、集成测试和系统测试等。
6.1 测试方法
本系统采用黑盒测试法,黑盒测试又称为功能测试。黑盒测试不同于白盒测试,不需要测试人员具有专业的测试知识,也不需要了解系统的内部运行细节。在测试时只需要找到所有输出功能和输入的集合,对每个模块分别进行测试分析。白盒测试,需要测试人员具有一定的专业知识,要懂得系统的内部工作过程。
6.2 测试环境介绍
测试环境:操作系统win7系统,数据库MYSQL。
测试数据:用户登录。
6.3 功能模块测试
用户登录测试,测试结果如表6.1所示。
表6.1 用户登录测试表
用例名称 | 用户登录 | 测试时间 | 3.03 |
对应需求 | 用户登录 | 测试人员 | 陶梦娇 |
功能描述 | 验证用户登录 | ||
测试目的 | 不存在用户或者帐号密码错误登录是否成功 | ||
前置条件 | 数据库中存在用户(帐号:tmj,密码:tmj123)非法用户(tmj123) | ||
测试步骤 | 1.在登录界面中输入帐号和密码2.单击“登录”按钮 | ||
序号 | 输入数据/动作 | 预期结果 | 实际结果 |
1 | 输入用户名和密码 | 去服务器数据库验证 | 和预期结果一致 |
2 | 输入非法用户 | 提示登录错误信息 | 和预期结果一致 |
在进行用户登录测试时,输入用户名和密码,点击登录按钮后,系统会去后台对用户名和密码进行校验。如果用户名和密码正确则跳转到用户信息界面,如果用户名和密码不正确就会显示登录不成功弹出提示框显示登录失败。
用户注册测试,测试结果如表5-2所示。
结 论
本文主要介绍了基于SSM 框架下基于智能推荐的b2c销售网站的设计与实现,该系统实现了对大量的基于智能推荐的b2c销售网站进行管理,从而大大提高了基于智能推荐的b2c销售网站管理效率。在控制层,利用Struts2的标签功能,在Action中直接与JSP页面上的数据进行交互。在业务逻辑层,可以利用Spring框架的依赖注入来实现对业务逻辑类和DAO类的实例编写。在持久层,利用hibernate提供的半自动化的对象关系映射的实现,开发人员需要编写具体的SQL语句,为系统设计提供了更大的自由空间。
当然,本系统仍存在一定不足,如:在基于智能推荐的b2c销售网站管理模块中,还应该增加一个模块给用户提出问题反馈意见。
致 谢
首先感谢我的导师老师在毕业设计过程中,从课题的选择、技术上的指导到具体的设计中,指导我阅读相关的资料和书籍,引领我快速入门,在开发的过程中对我的系统给出了一些及时的建议,在这段期间,我始终感受着老师的精心指导,受益匪浅,在此向老师表示深深的感谢。值得一提的是,李老师对学生认真负责,在她身上,我可以感受到一个学者的严谨和务实,这些都让我受益匪浅,并将终身受用。毕竟“经师易得,人师难求”,希望借此机会向陈老师表示最衷心的感谢!
不积跬步,何以至千里,本课题能顺利完成,也归功于大学期间各位任课老师的认真负责,使我能够很好的掌握和运用专业知识。同时还有这四年来一起学习的同学,感谢所有帮助过我的人。
最后,我还要感谢我的父母在物质及精神上给予的支持,他们不仅培养了我对科学文化的浓厚兴趣,让我在漫长的人生旅途中使心里有了明确的目标,而且也为我能够顺利的完成毕业论文提供了巨大的支持和帮助,在未来的日子里,我会更加努力的学习和工作,不辜负父母对我的殷殷期望!我一定会好好的孝敬和报答他们!
参考文献
[1] 马斗,邱哲,王俊标.JSP开发答疑200问[M].人民邮电出版社,2009:6-12.
[2] 李振华,季小虎.Dreamweaver基础教程[M].清华大学出版社,2010:5-20.
[3] 柳纯路,刘明亮.信息系统基于智能推荐的b2c销售网站管理师教程[M].清华大学出版社,2011:2-15.
[4] 任港.Ibatis框架源码剖析[M].电子工业出版社,2010:30-70.
[5] 苏林忠.基于JSP技术的动态WEB开发[M].河南师范大学学报,2008:3-10.
[6] 李振捷.JSP网站开发典型模块与实例精讲[M].电子工业出版社,2009:23-38.
[7] 李江,张威.实例解析XML/XSL/Java网络教程[M].北京希望电子出版社,2012:510-531.
[8] 庞永庆.JavaScript网页编程从入门到精通[M].科学出版社,2009:5-16.
[9] 徐明华.Struts基础与案例开发详解[M].清华大学出版社,2009:34-44.
[10] 孟晓峰.数据库系统导论[M].机械工业出版社,2010:7-15.
[11] 叶键毅.精通JavaEE-Eclipse Struts2 Hibernate Spring 整合应用案例[M].人民邮电出版社,2009:33-48.
[12] Gary Mark.Spring攻略[M].人民邮电出版社,2012:3-14.
[13] 计文柯.Spring技术内幕[M].机械工业出版社,2010:146-165.
[14] 刘中兵Java研究室.Java高手真经Java Web核心框架[M].电子工业出版社,2009:552-688.
[15] Billington.MySQL PL/SQL实战[M].人民邮电出版社,2012:45-63.a