基于Java的京东电商系统的设计与实现.docx
- 文档编号:10382083
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:26
- 大小:923.98KB
基于Java的京东电商系统的设计与实现.docx
《基于Java的京东电商系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java的京东电商系统的设计与实现.docx(26页珍藏版)》请在冰点文库上搜索。
基于Java的京东电商系统的设计与实现
基于Java的京东电商系统的设计与实现
摘要:
近十多年来,因为移动互联网发展迅猛,除了通常的查阅网页,搜索数据和发送电子邮件外,大多数国内网民还将采用以下传统功能,如购物,电信,旅游和娱乐我逐渐习惯了互联网。
包括使用在线购物在内的新服务模式正在成为人们生活中一种重要的购物形式。
互联网的发展迅猛,是网上购物系统发展的基础。
除此之外,网络购物营商环境也在逐渐的在改善。
移动互联网设备(手机,平板电脑)使互联网用户越来越多。
付款和结算方式变得更加容易,快递物流变得越来越顺畅,相应的法规和政策也越来越完善。
近10年来,网络购物对人们越来越有吸引力。
从一开始的,人们不理解人们对在线购物的看法,从问题到逐渐信任,从拒绝到逐渐接受和熟络。
关键词:
Java,网络购物
第1章系统概述
1.1系统开发背景
2018年12月止,电子商务直接雇员(包括电子商务平台,初创公司,服务提供商,电子商务经销商等)人数已经不止350万,号码(物流,市场营销,培训,直播等)已不止3000万。
因此世界各国政府也采取了积极促进电子商务产业发展的政策,从而提供了大量的就业机会和平台。
因为电子商务行业的发展,经济地位也在逐渐升高,在这种情况下,本文设计并开发了一个在线在线购物系统。
1.2系统特点
Ø基于Java流行开源技术构建:
使用业界流行的开源技术搭建,框架本身也完全开源,做到真正的技术开发。
Ø基于SOA架构设计:
以SOA架构风格构建,具有清晰的模块界限、服务独立部署和技术多样性的能力特点。
Ø满足Web和分布式应用开发:
框架以适应经典的的MVC架构和分布式大型应用开发为设计目标,两种风格的开发和部署无缝切换。
第2章项目开发相关技术基础
2.1Java语言
Java是由Sun公司推出的一种高级的面向对象的程序设计语言,也是一种跨平台的程序设计语言[1]。
因为Java跨平台的特性,所以可以兼容企业和Internet,Java是目前Internet中最受欢迎、最有影响力的编程语言之一[2]。
利用Java语言编写的程序代码在经过编译之后会转换成Java字节码,Java虚拟机(JVM)将会对这些字节码进行解释和运行[3]。
编译过后的字节码将以机器码的形式来保存,虚拟机可以把字节码解释成机器码,最后在计算机上运行。
如图2.1所示。
图2.1JAVA运行过程
2.2MVC模式
MVC是一种先进的软件开发的设计模式,它把应用程序分成三个核心模块,模型层(Model)、视图层(View)、控制器(Controller),它们各自处理自己的任务,相互协作,实现Web系统的职能分工[4]。
另外,MVC模式通过简化复杂性使程序的结构更直观,如图2.2所示。
图2.2Java代码的编译以及运行的过程
2.3SOA架构设计
SOA的服务的理念思想,本质是一种业务和技术的完全分离,业务又能和技术自由的组合的思想。
它达到了目前软件设计思想的最高境界[6]。
SOA架构系统根据模块分为几个子系统。
2.4Spring概述
Spring一个轻量级的Java开发开源框架。
它的设计考虑到了开发业务应用程序的复杂性,简单来说,Spring是一个具有多个JavaSE/EE级别的多层开源框架。
2.5Mybatis概述
MyBatis是持久性级别的绝佳框架。
封装了JDBC数据库的工作流,因此开发人员仅需专注于SQL本身,而不必花费精力进行诸如注册驱动程序,创建连接,创建语句和设置参数指南,JDBC复杂过程代码作为结果集检索的处理。
2.6SpringMvc概述
SpringMVC是功能强大且灵活的SpringWeb框架。
借助注释,SpringMVC提供了几乎是POJO的开发模型,并促进了控制器的开发和测试。
2.7JavaWeb开发技术
JavaWeb技术的广泛使用,使得各种信息化系统越来越功能强大又便于用户使用[9]。
JavaWeb技术主要是指JSP/Servlet。
本系统中使用Tomcat用作该系统上的Web服务器,本节介绍用于Web开发的客户端技术。
JSP技术
JSP技术使用Java作为脚本语言来为用户HTTP请求提供服务,并且可以与服务器上的其他Java程序一起处理复杂的业务请求,另外JSP可以方便存取可重用组件JavaBean,避免了重复的劳动,提高了效率[12]。
Servlet技术
JavaServlet技术为WEB开发者提供了一种简便、可靠的机制来扩展web服务器的功能和访问现有的事务系统[10]。
Javascript技术
尽管JavaScript被称为网站开发的脚本语言,但是它在没有浏览器的许多环境中也被使用。
它的目的是与HTML、Javaapplet一起实现在一个WEB页面中链接多个对象并能与客户端动态交互。
[5]
CSS技术
CSS可以精确地在像素级别上控制网页上元素的布局,支持几乎所有字体大小样式,并可以编辑对象和Web模板的样式。
当样式需要应用于很多页面时,外部样式表将是理想的选择。
[7]
AJAX技术
Ajax可以创建交互式,快速和动态的Web应用程序。
通过与后台服务器交换数据,Ajax可以异步更新网站。
在使用AJAX引擎后,用户从感觉上几乎所有的操作都会很快的响应[11]。
2.8数据库(Mysql)
MySQL是数据库的一种,MySQL是开源的,因此任何人都可以根据通用公共许可证下载并根据需要进行修改以进行自定义。
许多人认为MySQL是无需事务处理即可管理内容的最佳选择。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库[8]。
2.9本章小结
本章主要介绍了商城系统开发过程中使用的一些相关技术堆栈,包括Java相关技术,后台开发框架技术和模式,JavaWeb开发技术以及MySQL数据库。
背景技术和开发模型包括Spring技术,Mybatis技术,SpringMvc技术,MVC模式和SOA体系结构。
JavaWeb使用JSP技术,servlet技术,CSS技术,JavaScript技术和AJAX技术。
这些技术被用来为项目的开发奠定基础。
第3章系统整体设计
3.1系统功能需求及设计
本设计的系统架构为后台系统和前台系统共同组成,前台系统展示的内容通过后台系统添加,后台的系统功能由管理员使用,前台的系统功能给网站用户使用。
如下图3-1、图3-2所示。
图3-1后台系统架构
图3-2前台系统架构
商品管理模块
1.商品添加
在此商品添加功能下,前台商城系统中商品详情页信息的规格参数模板都能够被管理,做增加、查询、修改、删除规格参数模板操作,便于商品详情页信息的规格参数管理,都设置完成后可以在添加商品中选择需要的参数。
2.商品查询
添加商品后,是可以在商品查询界面中进行查询已添加的商品。
网站内容管理模块
可以在后台商城系统中,对前台商城系统首页中的类目信息、轮播内容进行管理,做增加、查询信息操作。
用户模块
1.用户注册
游客(未进行登录或注册的买家用户)可以浏览商品、搜索商品,商品购买的操作是不被允许的。
买家用户需先确认注册的信息,确认用户姓名和电子邮件格式是否有效后,再由系统确认用户的用户名是否已存在,步骤都完成后即可注册成功。
2.用户登录
注册完成后,接下来的操作是输入注册成功的用户信息来登录商城系统,系统根据输入的登录信息验证通过后,即登录成功,买家用户可以使用商品购买、添加购物车等功能操作。
商品模块
1.商品搜索
在前台商城系统的首页里的商品搜索的输入框中,用户在输入框内输入与所要搜索的商品信息相关的关键字,系统通过集成的Solr搜索引擎,查询搜索到买家用户搜索的商品且展示。
2.商品浏览
在前台商城系统首页向登录商城系统的用户显示了商品各式各样信息,买家用户进入系统首页后,点击某一个商品分类,就可以浏览到点击的分类下的全部商品信息。
买家用户还可以通过搜索来浏览所搜索的商品信息。
3.商品信息展示
查看商品信息时,买家用户是可以在点击中意的商品,此时,系统会根据买家用户点击的连接,跳转到具体的商品信息的WEB页面。
在具体的商品信息WEB页面中,商品的具体信息是可以被查看的,比如商品外观的介绍,商品具体的参数,商品数量,买家用户通过查看商品相信信息了解商品,决定是否购买该商品。
4.商品购买
在商品信息详情页面,买家用户可以通过点击“加入购物车”,加入到购物车后,在购物车页面进行购买该商品。
购物车模块
1.加入购物车
商品详情页中,加入购物车的功能是包含在其中的,点击加入购物车功能按钮,被用户点击的商品将加入到购物车中。
在购物车的商品信息都会被存入数据库中,买家用户可以通过点击“购物车”小图标,查看购物车中的所有商品的信息。
2.我的购物车
购物车的意思是买家用户的商品添加到购物车清单的列表,点击“购物车”小图标,在“购物车”WEB页面中,买家用户可做CRUD的操作。
3.结算
结算操作的对象是成功添加到购物车的商品。
4.提交订单
点击订单按钮后,即可讲选中的商品信息提交到后台处理返回订单信息。
3.2数据库设计
数据库概念模型设计
概念数据库的设计,实际上是为了面向对象和数据库相结合,更容易分析数据库系统,促进数据库设计者和用户之间的通信。
概念包括实体并联系。
在该购买系统中,商品例如是其属性包括商品ID的实体。
商品的标题,内容描述和其他属性。
实体之间有一对一,一对多两种种类型的关联。
以下的实体E-R图是该系统主要的实体。
(1)商城购物系统的“买家”实体的属性有“买家”ID,“买家”名,“买家”密码,“买家”手机,“买家”邮箱,“买家”类型,“买家”创建时间,“买家”更新时间。
如下图3-3所示。
图3-3用户实体的E-R图
(2)商城系统前台网站内容实体的属性有内容ID,前台网站内容目录ID,标题,小标题,标题描述,存储路径,图片1地址,图片2地址,内容,前台网站内容创建时间,前台网站内容更新时间。
前台网站内容实体的E-R图如下图3-4所示
图3-4前台网站内容实体的E-R图
(3)商城系统前台网站内容目录实体的属性有前台网站内容目录ID,父目录ID,前台网站内容目录名称,状态,排序方式,是否是父级目录,前台网站内容目录创建时间,前台网站内容目录更新时间。
如下图3-5所示
图3-5前台网站内容目录实体的E-R图
数据库逻辑结构设计
在网站购物系统中,实体的关系模式主要有以下内容:
前台网站内容:
内容ID,前台网站内容目录ID,标题,小标题,标题描述,存储路径,图片1地址,图片2地址,内容,前台网站内容创建时间,前台网站内容更新时间。
前台网站内容目录:
前台网站内容目录ID,父目录ID,前台网站内容目录名称,状态,排序方式,是否是父级目录,前台网站内容目录创建时间,前台网站内容目录更新时间。
商品信息:
ID,标题,卖点,价格,数量,条形码,图片地址,所属目录,状态,创建时间,更新时间。
商品目录:
商品目录ID,父目录ID,目录名称,状态,排序方式,是否是父级目录,商品目录创建时间,商品目录更新时间。
商品详情:
商品主键ID,商品详情,商品详情创建时间,商品详情更新时间。
商品参数:
商品参数ID,商品ID,商品参数数据,商品参数创建时间,商品参数更新时间。
订单:
ID,昵称,买家用户ID,订单总费用,订单创建时间,订单关闭时间。
订单详情:
ID,商品主键,数量,标题,单价,总费用,图片路径。
“买家”表:
“买家”ID,“买家”名,“买家”密码,“买家”手机,“买家”邮箱,“买家”创建时间,“买家”更新时间。
数据库物理设计
在数据库当中,系统的设计与实现的一个重要部分是数据表。
如下是该网站商城系统中数据库中几个重要的数据表设计的结构。
前台网站内容表为系统网站内容动态信息的数据库表,用于存储系统前台网站页面信息。
如下表3-1所示。
表3-1前台网站内容表
字段名称
字段类型
字段长度
是否可为空
默认值
字段描述
id
bigint(20)
20
NO
空
主键ID
cat_id
bigint(20)
20
NO
空
目录ID
biaoti
varchar(200)
200
YES
空
标题
sub_biaoti
varchar(100)
100
YES
空
副标题
biaoti_desc
varchar(500)
500
YES
空
标题描述
url
varchar(500)
500
YES
空
地址
tu_pian
varchar(300)
300
YES
空
图1
tu_pian2
varchar(300)
300
YES
空
图2
nei_rong
text
一
YES
空
内容
crt_date
datetime
一
YES
空
创建时间
upd_date
datetime
一
YES
空
更新时间
商品信息表为系统网站商品信息的数据库表,用于存储商品信息。
如下表3-2所示。
表3-2商品信息表
字段名称
字段类型
字段长度
是否可为空
默认值
字段描述
id
bigint(20)
20
NO
空
主键ID
biaoti
varchar(100)
100
NO
空
商品标题
sell_point
varchar(500)
500
YES
空
商品卖点
jia_ge
bigint(20)
20
NO
空
商品价格
num
int(10)
10
NO
空
商品数量
tiao_ma
varchar(30)
30
YES
空
商品条形码
tu_pian
varchar(500)
500
YES
空
商品图片
cid
bigint(10)
10
NO
空
商品目录ID
zhuang_tai
tinyint(4)
4
NO
1
商品是否在销售
crt_date
datetime
一
NO
空
商品创建时间
upd_date
datetime
一
NO
空
商品更新时间
订单表为系统网站用户下的订单信息数据库表,用于存储系统订单的信息。
如下表3-3所示。
表3-3订单表
字段名称
字段类型
字段长度
是否可为空
默认值
字段描述
id
bigint(20)
20
NO
空
订单主键ID
buyer_nick
varchar(50)
50
NO
空
昵称
buyer_id
bigint(20)
20
NO
空
买家用户ID
total_fee
bigint(50)
50
NO
空
订单总费用
crt_date_time
datetime
一
NO
空
订单创建时间
closed_time
datetime
一
YES
空
订单关闭时间
3.3系统界面设计
系统页面使用JSP提供的标签库以及JavaScript,jQuery和CSS技术设计。
JSP页面包含主要用于转换阶段的说明元素和脚本元素提供有关JSP页面和脚本元素的信息,这些页面和脚本元素允许JSP分离静态和动态内容分离出来。
使用JSP标签库和CSS技术来设计页面,JavaScript和jQuery技术提供的Web样式为网站添加动态功能,使设计的网站不仅具有出色的样式,而且还适合于后台系统数据交互。
3.4本章小结
本章主要介绍该商城系统的系统功能需求、系统功能设计、数据库设计、系统界面设计,通过文字、表格、图片详细描述了各部分的设计内容。
第4章系统实现
4.1系统框架实现
该系统集成了Mybatis框架来对JDBC操作进行了封装,方便了对数据库进行操作。
在db.properties中配置了数据库连接信息,如图4-1所示。
在applicationContext-dao.xml中配置了Spring框架整合Mybatis配置信息,如图4-2所示。
图4-1数据库连接信息
图4-2Mybatis配置信息
该系统集成了springmvc框架来对视图层进行了渲染。
在springmvc.xml配置了视图层配置相关信息,如下图4-3所示。
图4-3springmvc配置信息
4.2网站商品管理模块实现
网站商品管理模块主要有新增商品、查询商品功能。
用户在模块中新增所需要的商品。
新增后可在商品列表中,查询商品的信息。
商品添加
在界面上填写完表单后,通过AJAX的POST请求,把前台界面的商品内容信息提交到后台,在后台中实现逻辑保存逻辑,并把提交的信息保存在数据库中。
如下图4-4所示。
图4-4新增商品内容填写界面
逻辑代码如下:
spMapper.insert(tbSp);
spDescMapper.insert(tbSpDesc);
spParamSpMapper.insert(tbSpParamSp);
商品查询
添加商品成功后,可在列表中查询到商品的相关信息,列表中使用了mybatis的分页插件,用户可根据自己的需要选择每页显示多少条信息。
如图4-5所示。
图4-5商品查询界面
后台逻辑代码如下:
PgHelper.startPg(pg,rows);
TbSpExampleexample=newTbSpExample();
List
PgInfo
4.3网站内容管理模块实现
可在网站内容管理界面,对商城首页的模块内容进行新增、查询。
在模块中添加相应的内容,添加成功后,即可在商城系统的前台首页中展示添加的内容。
首页内容新增
在首页内容管理界面中,可通过选择内容管理的模块,后点击新增按钮新增内容。
如图4-6所示。
图4-6首页内容新增界面
后台代码如下所示:
nr.setUpdated(newDate());
nr.setCreated(newDate());
nrMapper.insert(nr);
首页内容查询
成功添加首页内容后,可在分类列表的查询界面中,查看添加的首页内容信息。
如图4-7所示。
图4-7首页内容查询界面
后台代码如下所示:
if(ls!
=null&&ls.size()>0){
EasyUiDataGridRs
rs=newEasyUiDataGridRs();
rs.setRows(ls);
rs.setTotal(pgInfo.getTotal());
returnrs;
}
4.4用户模块实现
用户进入商场系统前台首页后,可通过点击按钮进行登录或注册操作。
用户注册成功后,可在登录页面填写用户信息,即可成功登录到网站的前台首页中。
用户注册
用户点击注册功能按钮时,跳转到注册界面,填写完注册的信息后,通过ajax请求,将用户填写的注册信息提交到后台,保存到数据库中。
如图4-8所示。
图4-8用户注册界面
后端代码如下:
YHyh=newYH(Json.format(json));
yhMapper.insert(yh);
用户登录
用户注册完成后,可通过注册成功后的页面跳转或者在系统前台点击登录按钮,进入用户登录界面进行登录。
如图4-9用户登录界面所示。
图4-9用户登录界面
前端代码如下:
$.post("/user/login",$("#formlogin").serialize(),function(res){
if(res.status==200){
alert("登录成功!
");
if(rrUrl==""){
location.href="http:
//localhost:
8082/";
}else{
location.href=redirectUrl;
}
}else{
alert("登录失败,原因是:
"+res.msg);
$("#logn").select();
}
});
4.5商品模块实现
商品模块,可在商城前台界面中通过商品的信息进行搜索、浏览、展示。
网站用户可在前台界面通过以上三种方式,查看商品的相关信息。
商品搜索
在商城前台界面中,输入商品的信息,后台系统会根据输入的信息,根据关键字的权重进行搜索。
如图4-10所示。
图4-10商品搜索界面
后台代码如下:
SolrQryqry=newSolrQry();
qry.setQry(qryString);
qry.setStart((pg-1)*rows);
qry.setRows(rows);
qry.set("df","sp_title");
qry.setHighlight(true);
qry.addHighlightField("sp_title");
qry.setHighlightSimplePre("
qry.setHighlightSimplePost("");
SearchRssearchRs=searchDao.search(qry);
商品浏览
用户搜索点击搜索按钮后,系统根据用户提交的信息找出相关的商品信息,用户可浏览。
如图4-11所示。
图4-11商品浏览界面
后台逻辑代码如下:
Map
pm.put("keyword",keyword);
pm.put("pg",pg+"");
pm.put("rows",rows+"");
Stringjson=HCUtil.doGet(SEARCH_BASE_URL,pm);
RepRsrepRs=RepRs.formatToPojo(json,SearchRs.class);
商品信息展示
用户在浏览商品的过程中,可点击某一商品,进入到商品详情界面,查看该商品的详细信息。
如图4-12所示。
图4-12商品信息展示界面
后台逻辑代码如下:
Stringjson=HCUtil.doGet(REST_BASE_URL+REST_SP_BASE_URL+spId);
RepRsrepRs=RepRs.formatToPojo(json,PortalSp.class);
TbSpsp=(TbSp)repRs.getData();
returnsp;
4.6购物车模块实现
用户在查看选中的商品详细信息时,可在页面中通过加入购物车按钮,把该商品添加到购物车中,用户还可以在我的购物车中查看已添加到购物车的商品列表,并可点击去结算、提交订单按钮,对购物车的商品进行支付结算。
加入购物车
在商品详情页面,点击加入购物车按钮,即可把商品添加到购物车中。
后台逻辑代码如下:
TbSptbSp=spService.getSpById(spId);
GwcDatagwcData=ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 京东电商 系统 设计 实现