首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JavaWeb 商城專案實戰(一):需求分析、資料庫設計與實體類建模

     編輯:Java 相關知識

專案功能架構

(此處原文有圖示,略)

實體關係與資料庫設計

核心表結構

CREATE DATABASE shop;
USE shop;

-- 使用者表
CREATE TABLE user (
    id INT(11) PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(100),
    password VARCHAR(100),
    nickname VARCHAR(100),
    type INT(5)  -- 1=管理員, 2=註冊用戶
);
INSERT INTO user VALUES (NULL, 'admin', '7946521', '管理員', 1);

-- 收貨地址表
CREATE TABLE address (
    id INT(10) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255),
    phone VARCHAR(100),
    postcode VARCHAR(100),
    user_id INT(10),
    CONSTRAINT FOREIGN KEY (user_id) REFERENCES user(id)
);

-- 訂單表
CREATE TABLE orders (
    id INT(11) PRIMARY KEY AUTO_INCREMENT,
    buy_date DATETIME,
    pay_date DATETIME,
    confirm_date DATETIME,
    status INT(5),
    user_id INT(11),
    address_id INT(11),
    CONSTRAINT FOREIGN KEY (user_id) REFERENCES user(id),
    CONSTRAINT FOREIGN KEY (address_id) REFERENCES address(id)
);

-- 商品分類表
CREATE TABLE category (
    id INT(11) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100)
);

-- 商品表
CREATE TABLE goods (
    id INT(11) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    price DOUBLE,
    intro TEXT,
    img VARCHAR(100),
    stock INT(10),
    c_id INT(10),
    CONSTRAINT FOREIGN KEY (c_id) REFERENCES category(id)
);

-- 訂單商品關聯表
CREATE TABLE goods_orders (
    id INT(11) PRIMARY KEY AUTO_INCREMENT,
    goods_id INT(10),
    orders_id INT(10),
    CONSTRAINT FOREIGN KEY (goods_id) REFERENCES goods(id),
    CONSTRAINT FOREIGN KEY (orders_id) REFERENCES orders(id)
);

實體類實作

建立 model 套件,對應資料表。外鍵關聯直接使用物件引用(如 Address 中持有 User 物件),查詢時一併載入。

// User.java
package com.model;
import java.util.List;

public class User {
    private int id;
    private String username;
    private String password;
    private String nickname;
    private int type; // 1=admin, 2=user
    private List
addresses; // getter/setter 省略 } // Address.java package com.model; public class Address { private int id; private String name; private String phone; private String postcode; private User user; // 直接關聯 User 物件 // getter/setter 省略 }

分頁框架準備

建立三個核心類:

  • Pager.java:分頁資料容器(總筆數、頁大小、當前頁、資料列表)。
  • SystemContext.java:ThreadLocal 保存當前請求的分頁參數(pageSize, pageOffset)。
  • SystemFilter.java:攔截器從請求參數讀取分頁資訊存入 SystemContext,請求結束時清理。

後續篇章將實作 DAO、Service、Controller 層及前端頁面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved