基于SSM框架的快乐商城设计与实现.docx
- 文档编号:16862034
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:45
- 大小:1.87MB
基于SSM框架的快乐商城设计与实现.docx
《基于SSM框架的快乐商城设计与实现.docx》由会员分享,可在线阅读,更多相关《基于SSM框架的快乐商城设计与实现.docx(45页珍藏版)》请在冰点文库上搜索。
基于SSM框架的快乐商城设计与实现
基于SSM框架的快乐商城设计与实现
摘要:
随着互联网的发展,网上购物的用户越来越多,更多的人喜欢网上购物,网上购物方便,快捷。
其中的图书商城也是网上购物的一部分,现在的人们的节奏越来越快,时间对于个人来说非常的重要,基于各种原因促使了网上购物的快速发展!
网上购物可以让人只需要一个电脑,就可以轻轻松松的买到自己想要购买的书,用户也可以通过图书介绍来了解图书的大概内容。
网上购物商城的经营成本低,用户检索很方便,购物的时间大大缩短。
本系统主要以Jsp为工具,包括用户登录,注册,图书查找等功能。
关键词:
java;spring;springMVC;Mybatis;
第一章前言
1.1系统开发引言
近年来,随着计算机相关技术和网络技术的发展,计算机正在不断的改变人的生活方式,它的影响是潜移默化的。
尤其是这几年,互联网发展的速度令人难以想象。
人们更加希望通过网上购物所节约下来的时间去做更多的事情。
于是网上商城就这样发展起来了,网上购物非常方便,支付非常快捷,足不出户就可以买到自己想要购买的东西。
并且网上商城的物品更新速度很快,用户可以第一时间得到新品的详细信息。
网上商城的成本比较的,这样商品也会随之而然的比较低,就会吸引到更多的人去购买。
网上在线商城,就是为了将用户和商品之间架起一个快速的平台。
第二章相关开发工具介绍
2.1Eclipse介绍
eclipse是一个开发了源代码,基于java的开发平台,是一个免费的编写java的开发工具。
它本身只是一个框架和一些服务,它通过很多的插件来组成开发环境。
它的页面简单,使用起来非常便捷,非常适合java开发的新手使用。
它最初是属于IBM公司的一个软件,后来IBM公司宣布将其开放源码。
它的设计理念就是,一切都可以是插件。
它是一个较为强大的集成环境,集成了cvs,junit,ant,maven等。
现在很多学生和公司依然会选择它,最重要的原因:
它是免费的!
2.2Oracle数据库
OracleDatabase,又名OracleRDBMS,或简称Oracle。
是甲骨文公司的一款数据库系统。
它的使用范围非常广泛,可以用于大,中,小环境。
它的使用率比较高,可靠性也很好,对于吞吐量大的也完全适应,保存数据的时间很长,具有完备的关系产品。
安全性很高,但是价格比较贵,具有分布式的处理功能。
2.3Tomcat服务器
Tomcat服务器是Apache提供的,它是一个开源并且免费的一个产品。
它有Apache和Sun等公司共同开发完成的。
因为有Sun公司的加入,所以最新的Servlet和JSP规范得以在Tomcat中表现出来。
Tomcat技术比较先进,性能也比较稳,而且还是免费的。
所以很多Java开发者都很喜欢用这个产品,部分软件开发公司也会使用该产品,可以说它是目前很流行的Web应用服务器了。
Tomcat是免费开放源代码的一个服务器,属于轻量级的,在一些小型或者中型系统中应用比较广泛,是开放Java网站的首选。
对于一个初学者来说,Tomcat可以说是非常适合开发Javaweb了。
2.4Spring介绍
Spring是一个开源的控制反转和面向切面的容器框架,它的应用范围非常的广,它的主要目的就是为了简化企业的开发。
以前我们实例化对象是通过new来创建的,而使用了Spring之后就可以使用IOC控制反转由外部容器来负责创建对象,控制权就转移到外部容器。
Spring的出现,降低了组件之间的耦合度。
Spring还提供了很多其他的服务,例如事务的操作,持久化服务。
2.5SpringMVC介绍
SpringMVC是Spring中的一个很小部分,可以说是SpringWEB模块的一个子模块,它包括了处理器映射器,处理器适配器,视图解析器等。
SpringMVC实现了即用的MVC的核心概念。
它分工明确,很容易扩展,并且拥有强大的数据验证,格式化和数据绑定。
并且还支持目前非常流行的RESTful风格,和简单的文件上传,和基于注解的使用。
2.6Mybatis介绍
Mybatis一开始是Apache公司的一个开源项目iBatis,后来迁移到了googlecode就改了名称为Mybatis,它是一个基于java的持久层的框架。
Mybatis实现了接口的绑定,使用很方便。
对象映射的效率非常的高。
并且采用了OGNL的表达式来消除其他的元素。
Mybatis简单易学,并且灵活,相较于Hibernate更简单一些,但是它需要编写SQL语句,并且它的二级缓存机制不是很好。
第三章系统可行性分析
3.1技术可行性分析
系统采用当前流行的B/S结构,这种结构的最大优点就是软件的分发非常方便,不需要用户安装什么软件,只需要你的电脑里面有浏览器,就可以使用。
本系统主要依托于Spring框架,采用JAVA、JSP、Jquery、MySQL和MyBatis等技术开发,前台主要使用的是BootStrap技术,界面简单,美观。
使用Mybatis来与数据库进行连接,可以对数据库进行增删改查等操作。
Spring具有全面性和灵活性,还有他的功能性很强,再搭配数据库,非常的方便快捷。
在WEB的开发项目中的技术可行性方面是完全可行的。
3.2操作可行性分析
该系统可以运行在大多数的计算机中,由于是采用B/S架构开发,所以无需安装任何客户端,只需登录主页,就可以登录到网站首页。
用户就可以进行登录,注册信息,浏览商品,对商品进行购买,或者加入到购物车。
由于使用了BootStrap技术,网页设计非常清新,简洁,视觉效果比较好,操作也很简单,操作可行性很强。
3.3经济可行性分析
本系统是可以运行于现在市场上出现的各种个人电脑,系统成本主要集中在系统的开发上,而且维护成本比较低,并且现在更多的人更愿意选择在网上购买来节省时间,所以网上购物的前途很客观。
第四章系统需求分析
正所谓万事开头难,如果不能开个好头,那么到项目的后期就会渐渐的暴露出一些致命的错误亦或者是意想不到的困难,所以要对项目进行细致的分析与筹划,才能降低失误。
4.1功能需求分析
本系统开发是为了通过这个简单的商城,来了解JavaWeb工程师如何将知识运用起来,也可以为之后工作打下一个基础.
4.2性能需求分析
性能需求是指系统一定要满足的定时约束或容量约束,通常包括速度、信息量的速率、主存的容量、和安全性等方面的需求。
对于系统来说,必须保证这个系统的稳定性。
另外,系统的响应时间不能过长,应尽量减少用户访问时的等待时间。
主存容量、磁盘容量应满足整个软件开发的需求等。
4.3可靠性分析
开发出来的软件系统的稳定与否决定着软件开发的成败。
因此提高系统的稳定性是每一个开发人员的必修课。
系统可能运行一个月没问题,半年没问题,但不代表一年也没有问题,很有可能会出内存溢出,服务器的崩溃等异常错误。
因此在编写代码时要十分注意内存的管理,避免内存的非法访问,该释放的资源要及时的释放。
本系统在设计之初就将内存管理,事务管理,对象管理进行了合理的设计,尽量避免此类问题的产生。
第五章概要设计
5.1整体结构图
系统共有六大模块,分别为:
用户管理,分类显示,图书显示,购物车管理,订单管理,后台管理。
系统整体结构图与用例图,请参考下面两幅图。
图1系统结构图
图2系统用例图
5.2功能模块的分解
系统的主要模块有:
用户管理模块,图书分类显示模块,图书显示模块,购物车管理模块,订单管理模块,后台管理模块。
5.2.1用户管理模块
当用户登录到首页时,就可以对商品进行在线预览,对于未注册用户,系统应该提供注册功能。
对于已经进行注册过的用户,用户可以进行登录、退出、修改密码等操作;
5.2.2分类显示模块
对于所有的普通用户来说,都可以进行对商城内的书籍浏览,而图书需要进行分类显示,以方便用户的浏览与查询。
5.2.3图书显示模块
对于具体图书的显示,对于用户,可以通过书名的来进行模糊搜索图书、查看该图书的详细内容和简介等;
5.2.4购物车管理模块
用户可以在查看图书的过程中向购物车中添加图书,并且也可以修改购物车中图书的数量、也可以删除购物车中的图书,还可以查看我的购物车等;
5.2.5订单管理模块
将商品添加到购物车之后,可以通过点击购买来生成订单,也可以查看我的订单,删除订单,也可以查看订单的具体信息。
5.2.6后台管理模块
后台管理功能,可以查看订单,查看图书信息,修改图书信息,添加用户和分配权限。
第六章数据库设计
6.1数据库设计综述
信息系统的主要的目的是通过大量的数据获得所需要的信息,这就要求系统本身能够存储和管理大量的数据,而这一功能的实现必须借助大型数据库系统。
整个系统共有6张数据表。
所有的表中的字符集都是utf-8,这样就不会在页面中出现乱码问题。
由于系统采用Mybatis来完成对数据库的操作,而Mybatis是使用对象来进行数据的管理和操作。
下图为主要实体类之间的E-R关系图。
图3主要实体类之间的E-R关系图
6.2bs_category表设计
Bs_category(id,name)表是用来存储分类信息。
字段Id为主键,name为分类的名称。
具体字段设置参考表1。
表1bs_category
列名
数据类型
允许空
id
NUMBER(7)
No
name
VARCHAR2(20)
no
6.3bs_item表设计
Bs_item(id,count,price,order_id,logo,book_id)用来存储订单明细表。
具体字段设置参考表2。
表2bs_item
列名
数据类型
允许空
id
NUMBER(7)
no
count
NUMBER(7)
price
NUMBER(7,2)
order_id
NUMBER(7)
logo
NUMBER(7)
book_id
NUMBER(7)
6.4bs_user表设计
Bs_user(id,username,realname,password,gender,phone,email,company,state,,logo,img_path)。
具体字段设置参考表3。
表3bs_user
列名
数据类型
允许空
id
NUMBER(7)
no
username
VARCHAR2(20BYTE)
realname
VARCHAR2(20BYTE)
password
VARCHAR2(20BYTE)
gender
VARCHAR2(20BYTE)
phone
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
company
VARCHAR2(20BYTE)
state
NUMBER(3)
logo
NUMBER(3)
img_path
VARCHAR2(20BYTE)
6.5bs_order表设计
Bs_order(id,orderNo,createdate,orderstatus,total,user_id,logo,address_id),具体字段设置参考表4。
表4bs_order
列名
数据类型
允许空
id
NUMBER(7)
no
orderNo
VARCHAR2(20BYTE)
createdate
DATE
orderstatus
VARCHAR2(20BYTE)
total
NUMBER(7,2)
user_id
NUMBER(7)
logo
NUMBER(7)
address_id
NUMBER(7)
6.6bs_book表设计
Bs_book(id,bookname,author,publish,publishdate,price,instrduce,imgurl,category_id,logo,moremes)。
具体字段设置参考下表。
表5bs_book
列名
数据类型
允许空
id
NUMBER(7)
no
bookname
VARCHAR2(255BYTE)
author
VARCHAR2(255BYTE)
publish
VARCHAR2(255BYTE)
publishdate
DATE
price
NUMBER(7,2)
instrduce
VARCHAR2(255BYTE)
imgurl
VARCHAR2(255BYTE)
category_id
VARCHAR2(255BYTE)
logo
NUMBER(7)
moremes
VARCHAR2(255BYTE)
6.7bs_address表设计
Bs_address(id,province,city,area,detail,peceiver,tel,code,isdefault,user_id,logo)具体字段设置参考下表。
表6bs_address
列名
数据类型
允许空
id
NUMBER(7)
no
province
VARCHAR2(255BYTE)
city
VARCHAR2(255BYTE)
area
VARCHAR2(255BYTE)
detail
VARCHAR2(255BYTE)
peceiver
VARCHAR2(255BYTE)
tel
VARCHAR2(255BYTE)
code
VARCHAR2(255BYTE)
isdefault
NUMBER(10)
user_id
NUMBER(10)
logo
NUMBER(10)
6.8数据库表创建
用户表创建
DROPTABLE"BS_USER";
CREATETABLE"BS_USER"(
"ID"NUMBER(7)NOTNULL,
"USERNAME"VARCHAR2(20BYTE)NOTNULL,
"REALNAME"VARCHAR2(20BYTE)NOTNULL,
"PASSWORD"VARCHAR2(20BYTE)NOTNULL,
"GENDER"VARCHAR2(2BYTE)NULL,
"PHONE"VARCHAR2(255BYTE)NULL,
"EMAIL"VARCHAR2(255BYTE)NULL,
"COMPANY"VARCHAR2(255BYTE)NULL,
"STATE"NUMBER
(2)NULL,
"LOGO"NUMBER(3)NULL,
"IMG_PATH"VARCHAR2(255BYTE)NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
dropsequencebs_user_id;
createsequencebs_user_idincrementby1startwith1;
图书分类表创建
DROPTABLE"BS_CATEGORY";
CREATETABLE"BS_CATEGORY"(
"ID"NUMBER(7)NOTNULL,
"NAME"VARCHAR2(20BYTE)NOTNULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
dropsequencebs_category_id;
createsequencebs_category_idincrementby1startwith1;
图书表创建
DROPTABLE"BS_BOOK";
CREATETABLE"BS_BOOK"(
"ID"NUMBER(7)NOTNULL,
"BOOKNAME"VARCHAR2(255BYTE)NOTNULL,
"AUTHOR"VARCHAR2(255BYTE)NOTNULL,
"PUBLISH"VARCHAR2(255BYTE)NULL,
"PUBLISHDATE"DATENULL,
"PRICE"NUMBER(7,2)NULL,
"INSTRDUCE"VARCHAR2(255BYTE)NULL,
"IMGURL"VARCHAR2(255BYTE)NULL,
"CATEGORY_ID"VARCHAR2(255BYTE)NULL,
"LOGO"NUMBER(3)NULL,
"MOREMES"VARCHAR2(255BYTE)NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
createsequencebs_book_idincrementby1startwith1;
地址表创建
DROPTABLE"BS_ADDRESS";
CREATETABLE"BS_ADDRESS"(
"ID"NUMBER(7)NOTNULL,
"PROVICE"VARCHAR2(255BYTE)NULL,
"CITY"VARCHAR2(255BYTE)NULL,
"AREA"VARCHAR2(255BYTE)NULL,
"DETAIL"VARCHAR2(255BYTE)NULL,
"PECEIVER"VARCHAR2(255BYTE)NULL,
"TEL"VARCHAR2(255BYTE)NULL,
"CODE"VARCHAR2(255BYTE)NULL,
"ISDEFAULT"NUMBER(10)NULL,
"USER_ID"NUMBER(7)NULL,
"LOGO"NUMBER(3)NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
createsequencebs_address_idincrementby1startwith1;
订单表创建
DROPTABLE"BS_ORDER";
CREATETABLE"BS_ORDER"(
"ID"NUMBER(7)NOTNULL,
"ORDERNO"VARCHAR2(255BYTE)NULL,
"CREATEDATE"DATENULL,
"ORDERSTATUS"VARCHAR2(255BYTE)NULL,
"TOTAL"NUMBER(7,2)NULL,
"USER_ID"NUMBER(7)NULL,
"LOGO"NUMBER(3)NULL,
"ADDRESS_ID"NUMBER(7)NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
createsequencebs_order_idincrementby1startwith1;
订单明细表创建
DROPTABLE"BS_ITEM";
CREATETABLE"BS_ITEM"(
"ID"NUMBER(7)NOTNULL,
"COUNT"NUMBER(7)NULL,
"PRICE"NUMBER(7,2)NULL,
"ORDER_ID"NUMBER(7)NULL,
"LOGO"NUMBER(3)NULL,
"BOOK_ID"NUMBER(7)NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
createsequencebs_item_idincrementby1startwith1;
第七章详细设计
7.1系统结构
J2EE项目一般使用3层结构,即显示层,业务逻辑层和持久层。
利用Spring,SpringMVC和Mybatis,我们可以快速的实现业务逻辑层和持久层。
此分层可以保证分工明确,代码结构清晰可见。
视图层调用Service层,而Service层调用Dao层,Dao层再对数据库进行一系列操作,这也是常见的分层结构。
如下图所示。
图4常见的分层结构及使用的技术
7.2系统所使用的框架和技术列表
表7使用的框架与技术
编号
工具
版本
说明
1.
Spring
4.1.4
2.
SpringMVC
4.1.4
3.
Mybatis
3.4.5
实现持久化操作
4.
BootStrap
前端
5.
Maven
7.3配置开发工具
7.3.1对Oracle的配置
对于Oracle而言并没有太多东西去配置,只要注意在创建数据库时注意编码问题即可。
创建数据库的sql语句如下:
createdatabasecolsdefaultcharactersetutf8。
7.3.2对Eclipse的配置
1.设置工程的默认编码为UTF-8。
2.配置JSP的默认编码为utf-8。
3.配置JavaScript的默认编码为utf-8。
7.4添加框架环境
使用maven来对jar包的版本进行管理,添加junit,Spring,SpringMVC,
Mybatis,log4j,ojdbc6等依赖。
7.5配置Mybatis
修改mybatis-config.xml中的数据库连接信息。
并在mybatis-config.xml中做如下配置:
图5.mybatis配置文件
7.6项目中的目录结构与包结构
7.6.1目录结构如下图
图6.目录结构
7.6.2包结构
表8系统包结构
包名
说明
com.book.converter
转换器
com.book.entity
实体层
com.book.exception
异常类
com.book.mapper
Dao层
com.book.service
Service接口
com.book.service.impl
Service的实现类
com.book.controller
控制层
7.7前台普通用户部分
该系统的前台部分是提供给用户浏览、选购商品,一个好的网站的前台部分必须简洁,易操作。
因此,前台的设计主要把握3点:
简明扼要、条理清晰、层次分明。
7.7.1首页设计
前台部分采用bootstrap框架,外观简单,大方。
首页包括登录,注册,商品展示部分。
图7.前端首页展示
上半部分主要有登录,注册和搜索图书等按钮,中间部分是轮播图,下半部分是图书分类的展示。
核心代码如下:
includepage="/WEB-INF/jsp/top/top.jsp">
include>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SSM 框架 快乐 商城 设计 实现