estore简版商城

 

一、功能详细

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

实现功能:

一: 用户的注册

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

三:注销

四:实现md5加密

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

六: 商品的显示

七: 添加商品到购物车

八:权限控制

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

十: 生成订单(去结算)

十一:查看订单

十二: 在线支付

 

二、数据库建模分析

1、建表说明

设计表,一共有四个表。

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

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

2、ER图

estore简版商城

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、组织包结构:

estore简版商城

2、导包

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

estore简版商城

3、建实体bean:

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

estore简版商城

4、工具类:

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

操作数据库的工具类:jdbcUtils

md5加密的工具类:MD5Utils

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

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

上传文件的工具类:UploadUtils

 estore简版商城

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

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

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

l 第一步:

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

estore简版商城

l 第二步:

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

estore简版商城

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

estore简版商城

l 第三步:

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

 estore简版商城

estore简版商城

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

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

 

l 第四步:

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

注意:

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

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

 estore简版商城

五、项目展示

1、主页

estore简版商城

2、注册

estore简版商城

3、登录

estore简版商城

4、显示商品

estore简版商城

5、添加商品

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

estore简版商城

【2】管理员添加,成功

estore简版商城

6、添加商品到购物车

estore简版商城

7、显示购物车

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

estore简版商城

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

estore简版商城

8、结算,确认订单信息

estore简版商城

9、生成订单

estore简版商城

10、显示订单列表

estore简版商城

11、支付订单

estore简版商城

六、项目源码

本人的github项目地址

https://github.com/Forever99/estore

相关文章: