天天看点

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

estore简版商城

一、功能详细

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

实现功能:

一: 用户的注册

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

三:注销

四:实现md5加密

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

六: 商品的显示

七: 添加商品到购物车

八:权限控制

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

十: 生成订单(去结算)

十一:查看订单

十二: 在线支付

二、数据库建模分析

1、建表说明

设计表,一共有四个表。

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

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

2、ER图

estore简版商城一、功能详细二、数据库建模分析三、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简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

2、导包

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

3、建实体bean:

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

4、工具类:

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

操作数据库的工具类:jdbcUtils

md5加密的工具类:MD5Utils

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

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

上传文件的工具类:UploadUtils

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

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

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

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

l 第一步:

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

l 第二步:

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

l 第三步:

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码
estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

将 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应用中的资源文件的时候,都不要再加主机名了.

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

五、项目展示

1、主页

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

2、注册

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

3、登录

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

4、显示商品

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

5、添加商品

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

【2】管理员添加,成功

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

6、添加商品到购物车

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

7、显示购物车

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

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

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

8、结算,确认订单信息

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

9、生成订单

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

10、显示订单列表

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

11、支付订单

estore简版商城一、功能详细二、数据库建模分析三、estore工程环境搭建四、以顶级域名的方式发布工程五、项目展示六、项目源码

六、项目源码

本人的github项目地址

https://github.com/Forever99/estore

继续阅读