java电商mysql中存储什么_Java电商项目-1.构建数据库,搭建项目环境

本文详细介绍了如何构建一个Java电商项目,包括还原MySQL数据库,使用Mybatis逆向生成工具,搭建项目环境,数据库表分析以及在Linux上部署Zookeeper和Dubbo服务。在数据库部分,涉及到了内容表、商品表、商品分类表等多个核心表的结构。在环境搭建中,涉及到项目模块的创建、依赖配置、Pojo类与Mapper文件的生成。在部署环节,讲解了JDK与Zookeeper在Linux上的安装和配置。
摘要由CSDN通过智能技术生成

一. 数据库还原

新建Mysql数据库, 你可以使用自己熟悉的Mysql图形界面操作工具快速建库.

e7b2c28b14732e623302d810e6fa96c3.png

在新创建的ashop数据库中执行脚本文件ashop.sql. 该脚本存放在创建数据库的sql脚本目录下.

5cba0ff795aa2ec43b76c314d8d025aa.png

成功导入后, 数据库将拥有11张表

7529e48996699bebc263c324abad85ae.png

二. Mybatis逆向生成工具的使用

接下来我们通过Mybatis逆向生成工具根据数据库表生成对应的pojo类和与Mybatis有关的文件.

首先在IDE中导入Mybatis逆向生成工具/MybatisGenerator项目, 修改generatorConfig.xml文件中连接数据库的信息.

46b4d21877a8eee3cbac484e9b1a7a38.png

设置好后运行GeneratorSqlmap

4f1f4a86b39e2a7d97a0dbdada48a921.png

运行结束后我们会在mapper与pojo包下获得逆向生成的与数据库有关的数据.

我们先保留着这些文件, 在下面项目环境搭建的过程中将会拷贝这些文件. 有了逆向生成工具就不用手动生成这些数据了.

三. 搭建项目环境

项目的Maven结构如下:

25b09a006feef40e2bc0dfde99f5d6e0.png

在idea中先创建ashopMaven项目, 然后依次按层级创建好各个模块. 最后的结果如下图:

0485bc04192beb633032c4023b5710bf.png

创建好Maven项目后需要为各个子模块添加依赖, 具体的依赖放在项目中各个模块的pom依赖目录下.

接下来在ashop-rpc-service-impl模块的src/main/resource目录下添加配置文件, 所有配置文件均放在resource(配置文件)目录下.

3d4453a1bb1de4322879faeca3dfe6ae.png

接下来, 把之前用逆向生成工具生成的pojo类放到pojo模块中(在java目录下创建com.ashop.pojo包), 并把逆向工程生成的mapper包下的mapper文件放到mapper模块中, 注意.java和.xml文件是要分开放的, .java放在源码位置, .xml放在resource资源目录下

我项目做到这里的时候遇到了错误, Mapper文件报错, 原因是编译打包后mapper接口文件和.xml文件不在同一个包内. 原因是我在resources目录下建包的时候建错了...

e0c75e64a46369c06237ceecb9cd4b03.png

至此为止项目的框架搭建完成.

四. 在linux虚拟机上部署zookeeper, 搭建Dubbo服务.

先新建一台linux虚拟机, 然后使用类似Xshell等工具将jdk和zookeeper的安装包上传到虚拟机中.

linux虚拟机安装JDK

下面是JDK的安装过程:

首先你需要把linux版本的JDK上传到虚拟机上.

创建java安装目录: mkdir /usr/local/jdk

解压JDK压缩包: tar zxvf 跟上JDK压缩包名

拷贝解压后的JDK到安装目录中: cp -rf 解压JDK文件名 /usr/local/jdk/

配置环境变量: 打开编辑器vi /etc/profile, 追加以下内容

f4fd0ad1e59cc5f3d5a78ade0d5a1fbf.png

退出编辑器, 输入指令让环境变量生效: source /etc/profile

最后输入java或javac等指令检查是否配置成功.

安装zookeeper

首先把zookeeper的压缩包上传到linux虚拟机上

创建存放zookeeper的目录: mkdir /usr/local/zookeeper

解压上传到虚拟机的zookeeper压缩包: tar zxvf 压缩包名

(演示拷贝)拷贝解压文件到安装目录: cp -rf 解压文件名 /usr/local/zookeeper/zk1

进入zk1目录, 在当前目录下创建data目录: mkdir data

进入data目录, 并创建myid文件, 并在文件中输入1(作为第一个zookeeper的唯一标识): vi myid, 输入1后保存退出

25a140a92cfe05b4046f52a8b3e10165.png

9f27f4b157d2ea775dea7fe9f54b2a05.png

回到zk1目录, 进入conf目录, 拷贝默认配置文件: cp zoo_sample.cfg zoo.cfg.

修改新的配置文件, 主要修改三个地方: 1. dataDir 2. client 3. 集群信息

5439840a3ca0d321679952e61cbbde2e.png

配置完后继续拷贝2份zookeeper到/usr/local/zookeeper目录中, 我们要搭建集群, 三份zookeeper分别命名为zk1, zk2, zk3

注意zk2和zk3同样对配置文件要进行配置.

其中zk2的端口号配置为2182, zk3的端口号配置为2183, 除此之外配置文件最下面的集群部署三个配置文件都保持一致.

接着, 关闭防火墙: service iptables stop

启动3个zookeeper服务: ./zk1/bin/zkServer.sh start, 还要启动zk2和zk3...

查看某个zookeeper的状态: ./zk1/bin/zkServer.sh status

连接zookeeper集群查看信息: ./zk1/bin/zkCli.sh

查看某个节点的信息: ls /路径

查看某个节点保存的具体内容: get /路径

提示: 你可以设置防火墙开放2181, 2182, 2183三个端口, 这样就不需要每次去手动关闭防火墙了.

五. 搭建ashop-manager-web项目

ashop-manager-web模块的作用相当于普通BS项目中的后台. 只不过ashop-manager-web通过调用远程方法完成对数据库的操作. 这就是SOA架构中面向服务的思想.

首先在ashop项目下创建模块ashop-manager-web, 打包模式选择war包

1e0a08cc31d6b56ec0d65ce1c94f44bb.png

给后端管理系统添加依赖, 首先需要依赖service模块, 然后导入相关的依赖, 依赖样本在后台管理系统的配置文件目录中.

在模块的src/main/resource目录下, 完成spring配置文件的配置.

首先需要给出applicationContext-service.xml配置文件.

然后是applicationContext-dubbo.xml配置文件

最后创建springmvc.xml配置文件

拷贝提供的静态资源到ashop-manager-web模块中. (拷贝到webapp中)

接下来在后端管理系统的java目录下创建com.ashop.manager.controller包, 并创建PageController类, 在类中编写代码完成页面跳转以及管理后台首页的加载.

f6f82a478f1653974d5854a37e848362.png

然后对ashop总项目进行install, 你可能会在install时遇到一些小错误, 静下心根据错误提示修改即可.

install完后到ashop-manager-web项目中, 使用tomcat7插件进行发布. (Maven命令-Tomcat7:run)

459a8b37aee76560fef2a5b3c90981f0.png

启动完毕后我们到浏览器的地址栏中输入http://localhost:8080, 即可进入商城的后台管理页面

bd5ec7a1f00ef34ccec280c3b358cb18.png

到此为止, 环境搭建暂时告一段落. 下面补充数据库表的介绍

六. 数据库表分析

内容分类表:tb_content_category

列名

类型

含义

id

bigint(20)

内容分类

parent_id

bigint(20)

父类目 ID=0 时,代表的是一级的类目

name

varchar(50)

分类名称

status

int(1)

状态:可选值:1(正常),2(删除)

sort_order

int(4)

排列序号,表示同级类目的展现次序,如数值相等 则按名称次序排列。取值范围:大于零的整数

is_parent

tinyint(1)

该类目是否为父类目,1 为 true,0 为 false

created

datetime

创建时间

updated

datetime

更新时间

内容表: 内容表:tb_content

列名

类型

含义

id

bigint(20)

主键

category_id

bigint(20)

内容分类 ID

title

varchar(200)

内容标题

sub_title

varchar(100)

子标题

title_desc

varchar(500)

标题描述

url

varchar(500)

链接

pic

varchar(300)

图片绝对路径

pic2

varchar(300)

图片 2

content

text

内容

created

datetime

创建时间

updated

datetime

更新时间

1.3 商品表:tb_item

列名

类型

含义

id

bigint(20)

商品 id,同时也是商品编号

title

varchar(100)

商品标题

sell_point

varchar(500)

商品卖点

price

bigint(20)

商品价格,单位为:分

num

int(10)

库存数量

barcode

varchar(30)

商品条形码

image

varchar(500)

商品图片,以逗号分隔的多个图片的 url 地址字符 串

cid

bigint(10)

所属类目,叶子类目

status

tinyint(4)

商品状态,1-正常,2-下架,3-删除

created

datetime

创建时间

updated

datetime

更新时间

1.4 商品分类表:tb_item_cat

列名

类型

含义

id

bigint(20)

商品分类 ID

parent_id

bigint(20)

父类目 ID=0 时,代表的是一级的类目

name

varchar(50)

类目名称

status

int(1)

状态。可选值:1(正常),2(删除)

sort_order

int(4)

排列序号,表示同级类目的展现次序,如数值相等 则按名称次序排列。取值范围:大于零的整数

is_parent

tinyint(1)

该类目是否为父类目,1 为 true,0 为 false

created

datetime

创建时间

updated

datetime

更新时间

商品描述表:tb_item_desc

列名

类型

含义

item_id

bigint(20)

商品 ID

item_desc

text

商品描述

created

datetime

创建时间

updated

datetime

更新时间

商品规格参数模板表:tb_item_param

列名

类型

含义

id

bigint(20)主键

item_cat_id

bigint(20)

商品分类 ID

param_data

text

规格参数模板信息

created

datetime

创建时间

updated

datetime

更新时间

商品规格参数信息表:tb_item_param_item

列名

类型

含义

id

bigint(20)

主键

item_id

bigint(20)

商品 ID

param_data

text

规格参数信息

created

datetime

创建时间

updated

datetime

更新时间

订单表:tb_order

列名

类型

含义

order_id

varchar(50)

订单 id

payment

varchar(50)

实付金额。精确到 2 位小数;单位:元。如:200.07, 表示:200 元 7 分

payment_type

int(2)

支付类型,1、在线支付,2、货到付款

post_fee

varchar(50)

邮费。精确到2 位小数;单位:元。如:200.07,表示:200 元 7 分

status

int(10)

状态:1、未付款,2、已付款,3、未发货,4、已 发货,5、交易成功,6、交易关闭

create_time

datetime

订单创建时间

update_time

datetime

订单更新时间

payment_time

datetime

付款时间

consign_time

datetime

发货时间

end_time

datetime

交易完成时间

close_time

datetime

交易关闭时间

shipping_name

varchar(20)

物流名称

shipping_code

varchar(20)

物流单号

user_id

bigint(20)

用户 id

buyer_message

varchar(100)

买家留言

buyer_nick

varchar(50)

买家昵称

buyer_rate

int(2)

买家是否已经评价

tb_order_item

列名

类型

含义

id

varchar(20)

主键

item_id

varchar(50)

商品 id

order_id

varchar(50)

订单 id

num

int(10)

商品购买数量

title

varchar(200)

商品标题

price

bigint(50)

商品单价

total_fee

bigint(50)

商品总金额

pic_path

varchar(200)

商品图片地址

物流表:tb_order_shipping

列名

类型

含义

order_id

varchar(50)

订单 ID

receiver_name

varchar(20)

收货人全名

receiver_phone

varchar(20)

固定电话

receiver_mobile

varchar(30)

移动电话

receiver_state

varchar(10)

省份

receiver_city

varchar(10)

城市

receiver_district

varchar(20)

区/县

receiver_address

varchar(200)

收货地址,如:xx 路 xx 号

receiver_zip

varchar(6)

邮政编码,如:310001

created

datetime

创建时间

updated

datetime

更新时间

用户表:tb_user

列名

类型

含义

id

bigint(20)

用户表主键

username

varchar(50)

用户名

password

varchar(32)

密码,加密存储

phone

varchar(20)

注册手机号

email

varchar(50)

注册邮箱

created

datetime

创建时间

updated

datetime

更新时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值