estore简版商城

一、功能详细

简要说明,这是一个简版的电商网站:卖东西的网站

实现功能:

一: 用户的注册

二: 用户的登录------ 自动登录

三:注销

四:实现md5加密

五: 商品的添加 --- ----文件的上传

六: 商品的显示

七: 添加商品到购物车

八:权限控制

九: 显示购物车(去购物车结算)【包含修改购物车商品数量】

十: 生成订单(去结算)

十一:查看订单

十二: 在线支付

二、数据库建模分析

1、建表说明

设计表,一共有四个表。

用户表:user,商品表:product,订单表:order,订单项表(订单和商品的关系表):orderitem

备注:购物车,没有单独设计成一个表,而是将购物车中的东西放到session中进行存储

2、ER图

3、estore表字段

(1)用户表:user

字段名称

数据类型

主键

是否空

说明

id

varchar(50)

Y

N

主键(用户编号)

username

varchar(50)

N

N

用户名

password

varchar(50)

N

N

密码

email

varchar(50)

N

N

邮箱

nickname

varchar(50)

N

N

昵称

role

varchar(30)

N

N

角色(user表示普通用户,admin表示管理员)

(2)商品表:product

字段名称

数据类型

主键

是否空

说明

id

varchar(50)

Y

N

主键(商品编号)

name

varchar(50)

N

N

商品名

price

double

N

N

单价

category

varchar(50)

N

N

种类

description

varchar(100)

N

N

商品描述

count

int

N

N

库存

imageurl

varchar(100)

N

N

图片存放地址

(3)订单表:orders

由于用户和订单是一对多的关系,所以在多的一方添加一的一方的主键作为外键约束

字段名称

数据类型

主键

是否空

说明

id

varchar(50)

Y

N

主键(订单编号)

money

double

N

N

订单金额

ordertime

double

N

N

订单时间

reveiveinfo

varchar(100)

N

N

收货地址

paystate

int

N

N

支付状态(0表示未支付,1表示支付成功)

user_id

varchar(50)

N

N

外键(用户编号)

(4)订单项表(订单和商品的关系表):orderitem

由于商品和订单是多对多的关系, 所以会引入第三张关系表, 将两张主体表的主键拿过来当作外键约束

字段名称

数据类型

主键

是否空

说明

order_id

varchar(50)

N

N

外键(订单编号)

product_id

varchar(50)

N

N

外键(商品编号)

buynum

int

N

N

购买商品数量

4、建库建表语句

create databaseestore;

use estore;

-- 用户表

create table user(

id varchar(50) primary key,

username varchar(50),

password varchar(50),

email varchar(50),

nickname varchar(50),

role varchar(30)

);

-- 商品表

create tableproduct(

id varchar(50) primary key,

name varchar(50),

price double,

category varchar(50),

description varchar(100),

count int,

imageurl varchar(100)

);

-- 订单表

create table orders(

id varchar(50) primary key,

money double,

ordertime datetime,

receiveinfo varchar(100),

paystate int,

user_id varchar(50),

--由于用户和订单是一对多的关系,所以在多的一方添加一的一方的主键作为外键约束

-- 外键约束

foreign key(user_id) references user(id)

);

由于 商品和订单是多对多的关系, 所以会引入第三张关系表, 将两张主体表的主键拿过来当作外键约束

-- 关系表

create tableorderitem(

order_id varchar(50),

product_id varchar(50),

buynum int,

foreign key(order_id) references orders(id),

foreign key(product_id) references product(id)

);

三、estore工程环境搭建

新建一个工程:estore

1、组织包结构:

2、导包

Beanutils(2个jar)+ dbutils(1个jar )+ c3p0(1 个jar, 1 个配置文件)+mysql驱动(1个jar)+ commons-fileupload(2个jar)

3、建实体bean:

有什么样的表就有什么样 bean

4、工具类:

一些前期,认为必要的工具类,后期具体会根据需要加入一些工具类,方便项目的开展

操作数据库的工具类:jdbcUtils

md5加密的工具类:MD5Utils

手动管理事务(解耦合)的工具类:TransactionUtil

制作图片缩略图(小图)的工具类:PictUtils

上传文件的工具类:UploadUtils

四、以顶级域名的方式发布工程

通过顶级域名的方式去发布工程.  让tomcat服务器自动加载 web应用, 不再通过之前的方式去发布.

通过www.estore.com可以访问 到网站的首页

l 第一步:

到 tomcat服务器的server.xml文件中,更改端口为80

l 第二步:

在C:\Windows\System32\drivers\etc目录下:找到hosts文件

进入到 hosts 文件中 添加主机名与ip地址对应关系

l 第三步:

到 tomcat服务器的server.xml文件中,  添加 Host元素,添加如下:

将 www.estore.com 映射指向了 硬盘上的: D:\myeclipse_workspace\estore(estore在myeclipse中的位置)

然后又将 这个文件夹下的:D:\myeclipse_workspace\estore\WebRoot(estore在的WebRoot里面的结构就是一个web应用里面的结构,所以此处相当于estore的web应用在myeclipse中的位置)

l 第四步:

启动服务器去访问(如果此时不成功,可能是80端口被占用)

注意:

1.这里以 顶级 域名方式 发布后,  以后就不要再  点击 去发布了 .  Tomcat服务器会自动加载web应用.

2.以顶级域名方式发布后,再去访问web应用中的资源文件的时候,都不要再加主机名了.

五、项目展示

1、主页

2、注册

3、登录

4、显示商品

5、添加商品

【1】普通用户添加,失败,没有权限

【2】管理员添加,成功

6、添加商品到购物车

7、显示购物车

【1】管理员显示购物车,失败,没有权限

【2】普通用户显示购物车,成功

8、结算,确认订单信息

9、生成订单

10、显示订单列表

11、支付订单

六、项目源码

本人的github项目地址

https://github.com/Forever99/estore

estore简版商城相关推荐

  1. estore简版商城疑点思考

    estore简版商城疑点思考 一.疑点 1.疑点一:[解决] 读取  web应用中的 资源 文件 解答: 本人博文:javaweb读取 web 应用中的资源文件 http://blog.csdn.ne ...

  2. 公司网站营销方案(简版)

    公司网站营销方案(简版) 前言: 随着网络的普及,以及人们文化素质的提高,上网是大多数人生活中不可缺少的一部分,同时有相当一大部分的人,积极的参与网上的各种活动,现在越来越多的人,希望利用业余的时间, ...

  3. [置顶]完美简版学生信息管理系统(附有源码)管理系统

    简版学生信息管理系统 目前为止找到的简版系统中最新.最全的java类管理系统 点击进入简版系统 如果无法直接连接,请进入: https://blog.csdn.net/weixin_43419816/ ...

  4. 7句话让Codex给我做了个小游戏,还是极简版塞尔达,一玩简直停不下来

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 什么,7 ...

  5. 来,一起手撸一个简版 Redis(附源码)

    点击上方 视学算法,选择 设为星标 优质文章,及时送达 作者 | 凯京技术团队 来自 | my.oschina.net/keking/blog/3037372 今天主要介绍两个开源项目,然后创建应用最 ...

  6. 2012年中国移动地图和导航市场研究报告简版

    2019独角兽企业重金招聘Python工程师标准>>> 2012年中国移动地图和导航市场研究报告简版 2012年中国移动地图和导航市场用户规模为2.53亿人,增长率为62.2%.伴随 ...

  7. 10分钟手撸极简版ORM框架!

    最近很多小伙伴对ORM框架的实现很感兴趣,不少读者在冰河的微信上问:冰河,你知道ORM框架是如何实现的吗?比如像MyBatis和Hibernte这种ORM框架,它们是如何实现的呢? 为了能够让小伙伴们 ...

  8. 《数字孪生体技术白皮书(2019)》(简版)全文

    来源:<数字孪生体实验室原创> 12月27日,数字孪生体实验室与安世亚太联合正式发布了<数字孪生体技术白皮书(2019)>. 白皮书的第一部分关注对数字孪生体的抽象和总结.无论 ...

  9. Dockerfile 简版大全,附赠编写实例

    基础镜像可以用于创建Docker容器.镜像可以非常基础,仅仅包含操作系统:也可以非常丰富,包含灵巧的应用栈,随时可以发布.当你在使用Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一 ...

  10. react-redux简版实现

    Provider组件 Provider用于建立能够被子组件访问的全局属性,核心API有两个: childContextTypes静态属性,用于指定被子组件访问的全局属性类型 getChildConte ...

最新文章

  1. oracle跑with语句很慢,oracle 11g新特性---WITH语句增强
  2. 【Java】使用单向链表实现一个队列(Queue)
  3. Nature子刊封面:澳大真菌研究新突破 有助降低免疫力弱人群受真菌感染的风险...
  4. 个人支付宝账号也可以做付款后自动发货发卡系统,附:源码+demo
  5. Hadoop学习总结
  6. RemoteApp连接时所需要的证书
  7. xcode8 崩溃问题
  8. BZOJ1841 : 蚂蚁搬家
  9. 礼品盒子插画素材丨节日设计加上它之后价值翻倍!
  10. 开发人员必备的 Chrome 扩展
  11. Python 学习 DAY1
  12. 【前端】JavaScript详细教程(二)
  13. Excel汇总大师破解版 v1.6.8 免安装绿色版 Excel合并拆分
  14. 多linux系统u盘制作,高手教你如何做一个U盘Linux系统
  15. DXVA视频硬件加速
  16. 华为手机鸿蒙系统手机_华为推出鸿蒙系统2.0 明年华为手机将适配支持
  17. 帝国cms 制作网站地图
  18. Jetpack Compose SideEffect:副作用及相关API
  19. PS滤镜给城市夜空照片添加满天星
  20. GAMES101 作业0 环境配置 超详细小白教程

热门文章

  1. 单机数据库的实现----------01数据库
  2. Android简易本地音乐播放器,Android简易音乐播放器实现代码
  3. Java求某一天是星期几
  4. 最新区块链开发教程汇总
  5. 查看磁盘文件夹大小工具WinDirStat
  6. 【测试人生】安卓FPS测试详解
  7. 吉客云与金蝶云星空集成方案(吉客云主管库存)
  8. “零基础圆梦华为RS HCNP”视频课程规划
  9. 2020年低压电工模拟考试题及低压电工实操考试视频
  10. 2021年高压电工考试题及高压电工模拟考试