Java電商項目-1.構建數據庫,搭建項目環境


到Github獲取源碼請點擊此處

 

一. 數據庫還原

  1. 新建Mysql數據庫, 你可以使用自己熟悉的Mysql圖形界面操作工具快速建庫.

在這里插入圖片描述

 

  1. 在新創建的ashop數據庫中執行腳本文件ashop.sql. 該腳本存放在創建數據庫的sql腳本目錄下.

在這里插入圖片描述

 

  1. 成功導入后, 數據庫將擁有11張表

在這里插入圖片描述

 

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

  • 接下來我們通過Mybatis逆向生成工具根據數據庫表生成對應的pojo類和與Mybatis有關的文件.
  • 首先在IDE中導入Mybatis逆向生成工具/MybatisGenerator項目, 修改generatorConfig.xml文件中連接數據庫的信息.

在這里插入圖片描述

 

  • 設置好后運行GeneratorSqlmap

在這里插入圖片描述

 

  • 運行結束后我們會在mapperpojo包下獲得逆向生成的與數據庫有關的數據.
  • 我們先保留着這些文件, 在下面項目環境搭建的過程中將會拷貝這些文件. 有了逆向生成工具就不用手動生成這些數據了.

三. 搭建項目環境

  • 項目的Maven結構如下:

在這里插入圖片描述

 

  • 在idea中先創建ashopMaven項目, 然后依次按層級創建好各個模塊. 最后的結果如下圖:

在這里插入圖片描述

 

  • 創建好Maven項目后需要為各個子模塊添加依賴, 具體的依賴放在項目中各個模塊的pom依賴目錄下.
  • 接下來在ashop-rpc-service-impl模塊的src/main/resource目錄下添加配置文件, 所有配置文件均放在resource(配置文件)目錄下.

在這里插入圖片描述

 

  • 接下來, 把之前用逆向生成工具生成的pojo類放到pojo模塊中(在java目錄下創建com.ashop.pojo包), 並把逆向工程生成的mapper包下的mapper文件放到mapper模塊中, 注意.java.xml文件是要分開放的, .java放在源碼位置, .xml放在resource資源目錄下
  • 我項目做到這里的時候遇到了錯誤, Mapper文件報錯, 原因是編譯打包后mapper接口文件和.xml文件不在同一個包內. 原因是我在resources目錄下建包的時候建錯了...

在這里插入圖片描述

 

  • 至此為止項目的框架搭建完成.

 

四. 在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, 追加以下內容

在這里插入圖片描述

  • 退出編輯器, 輸入指令讓環境變量生效: source /etc/profile
  • 最后輸入javajavac等指令檢查是否配置成功.

 

安裝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后保存退出

在這里插入圖片描述

在這里插入圖片描述

  • 回到zk1目錄, 進入conf目錄, 拷貝默認配置文件: cp zoo_sample.cfg zoo.cfg.
  • 修改新的配置文件, 主要修改三個地方: 1. dataDir 2. client 3. 集群信息

在這里插入圖片描述

 

  • 配置完后繼續拷貝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包

在這里插入圖片描述
 

  • 給后端管理系統添加依賴, 首先需要依賴service模塊, 然后導入相關的依賴, 依賴樣本在后台管理系統的配置文件目錄中.
  • 在模塊的src/main/resource目錄下, 完成spring配置文件的配置.
  • 首先需要給出applicationContext-service.xml配置文件.
  • 然后是applicationContext-dubbo.xml配置文件
  • 最后創建springmvc.xml配置文件
  • 拷貝提供的靜態資源到ashop-manager-web模塊中. (拷貝到webapp中)

 

  • 接下來在后端管理系統的java目錄下創建com.ashop.manager.controller包, 並創建PageController類, 在類中編寫代碼完成頁面跳轉以及管理后台首頁的加載.

在這里插入圖片描述
 

  • 然后對ashop總項目進行install, 你可能會在install時遇到一些小錯誤, 靜下心根據錯誤提示修改即可.
  • install完后到ashop-manager-web項目中, 使用tomcat7插件進行發布. (Maven命令-Tomcat7:run)

在這里插入圖片描述

 

  • 啟動完畢后我們到瀏覽器的地址欄中輸入http://localhost:8080, 即可進入商城的后台管理頁面

在這里插入圖片描述
 

  • 到此為止, 環境搭建暫時告一段落. 下面補充數據庫表的介紹

 

六. 數據庫表分析

  1. 內容分類表: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 更新時間
  1. 內容表: 內容表: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. 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. 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 更新時間
  1. 商品描述表:tb_item_desc
列名 類型 含義
item_id bigint(20) 商品 ID
item_desc text 商品描述
created datetime 創建時間
updated datetime 更新時間
  1. 商品規格參數模板表:tb_item_param
列名 類型 含義
id bigint(20) 主鍵
item_cat_id bigint(20) 商品分類 ID
param_data text 規格參數模板信息
created datetime 創建時間
updated datetime 更新時間
  1. 商品規格參數信息表:tb_item_param_item
列名 類型 含義
id bigint(20) 主鍵
item_id bigint(20) 商品 ID
param_data text 規格參數信息
created datetime 創建時間
updated datetime 更新時間
  1. 訂單表: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) 買家是否已經評價
  1. 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) 商品圖片地址
  1. 物流表: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 更新時間
  1. 用戶表:tb_user
列名 類型 含義
id bigint(20) 用戶表主鍵
username varchar(50) 用戶名
password varchar(32) 密碼,加密存儲
phone varchar(20) 注冊手機號
email varchar(50) 注冊郵箱
created datetime 創建時間
updated datetime 更新時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM