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

J2EE 購物網站全棧開發實戰:從環境搭建到數據庫設計完整教程

     編輯:Java 相關知識

本文通過完整購物網站案例,演示 J2EE 企業級應用全生命週期開發:環境搭建 (Oracle/WebLogic/JBuilder)、數據庫設計、分層架構實現、部署驗證。雖技術棧歷史久遠,但工程化思維、分層設計、配置管理經驗具備永恆參考價值。

一、開發平台搭建 (歷史版本參考)

組件版本關鍵配置
OSWindows 2000 SP3P4 1.7GHz / 256MB RAM
JDK1.4.2_06`JAVA_HOME`、`PATH`
Oracle8i/9iP4 機器安裝 8i 需修改 `symcJit.dll`、`oraparam.ini`
WebLogic6.1 SP2JDBC Connection Pool + DataSource (JNDI: `oradb`)
JBuilder7 WebLogic 版整合 WebLogic、內存調優 (`-Xmx256m`)、字體設定 (新宋體)

二、Oracle 8i 安裝關鍵點 (P4 兼容性修正)

  1. 拷貝安裝源到本地臨時目錄
  2. 重命名 `stage/Components/Oracle.swd.Jre1.1.7.301/DataFiles/Expanded/Jre/Windows/32/bin/symcJit.dll` → `symcJit.old` (含 OEM 目錄下同名文件)
  3. 修改 `oraparam.ini`:`JRE_MEMORY_OPTIONS=-noJit -ms16m -mx32m`
  4. 自定義安裝、不建立數據庫
  5. 安裝後修改所有 `.cl` 文件 (如 `dbassist.cl`),Java 命令添加 `-noJit` 參數
  6. 使用 Database Configuration Assistant 建庫,記錄 Global Database Name (如 `oradb`)

三、WebLogic 數據源配置

  1. 啟動 WebLogic,進入 Console (System/密碼)
  2. Services → JDBC → Connection Pools → Configure New:
    • Name: `mytest`
    • URL: `jdbc:weblogic:oracle`
    • Driver: `weblogic.jdbc.oci.Driver`
    • Properties: `user=system` `password=manager` `server=oradb`
    • Targets → Servers: 選中當前 Server
  3. Data Sources → Configure New:
    • Name/Pool Name: `mytest`
    • JNDI Name: `oradb`
    • Targets → Servers: 選中當前 Server
  4. 驗證:啟動日誌出現 `JDriver/Oracle` 字樣

四、JBuilder 整合 WebLogic

  1. Tools → Configure Servers → WebLogic 6.x-7.0 → Enable
  2. Home/Working Directory 指向 WebLogic 域目錄
  3. Custom → JDK Installation Dir、BEA Home Dir
  4. Domain Name、Server Name、密碼填寫正確
  5. 驗證:新建 Web Application → 生成 WAR → 發布 → 瀏覽器訪問成功

五、購物網站數據庫設計

5.1 表結構設計

表名用途核心字段
ITEM商品類別TYPE_ID (PK)、TYPE (VARCHAR2(30))
PRODUCT商品信息PRODUCT_ID (PK)、TITLE、TYPE_ID (FK→ITEM)、INFO、PRICE (NUMBER(16,2))
ORDERS訂單記錄ORDER_ID (PK)、NAME、ADDRESS、TEL、EMAIL、BTIME (DATE)、PRODUCT_ID (FK)、UWORD
ADMIN管理員ADMIN_ID (PK)、ADMINNAME、PASSWORD

5.2 關聯與序列


-- 主鍵/外鍵
ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_FK FOREIGN KEY (TYPE_ID) REFERENCES ITEM(TYPE_ID);
ALTER TABLE ORDERS ADD CONSTRAINT ORDERS_FK FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCT(PRODUCT_ID);

-- Oracle 序列替代自增
CREATE SEQUENCE TYPE_ID INCREMENT BY 1 START WITH 1;
CREATE SEQUENCE PRODUCT_ID INCREMENT BY 1 START WITH 1;
CREATE SEQUENCE ORDER_ID INCREMENT BY 1 START WITH 1;
CREATE SEQUENCE ADMIN_ID INCREMENT BY 1 START WITH 1;

-- 使用方式
INSERT INTO ITEM (TYPE_ID, TYPE) VALUES (TYPE_ID.NEXTVAL, '電子產品');
INSERT INTO PRODUCT (PRODUCT_ID, TITLE, TYPE_ID, INFO, PRICE) 
VALUES (PRODUCT_ID.NEXTVAL, '筆記本', TYPE_ID.CURRVAL, '高性能', 5999.00);

5.3 完整建表腳本


CREATE TABLE ITEM (
    TYPE_ID INTEGER NOT NULL,
    TYPE VARCHAR2(30),
    CONSTRAINT ITEM_PK PRIMARY KEY (TYPE_ID)
);

CREATE TABLE PRODUCT (
    PRODUCT_ID INTEGER NOT NULL,
    TITLE VARCHAR2(30) NOT NULL,
    TYPE_ID INTEGER NOT NULL,
    INFO VARCHAR2(80),
    PRICE NUMBER(16,2) NOT NULL,
    CONSTRAINT PRODUCT_PK PRIMARY KEY (PRODUCT_ID),
    CONSTRAINT PRODUCT_FK FOREIGN KEY (TYPE_ID) REFERENCES ITEM(TYPE_ID)
);

CREATE TABLE ORDERS (
    ORDER_ID INTEGER NOT NULL,
    NAME VARCHAR2(20) NOT NULL,
    ADDRESS VARCHAR2(100),
    TEL NUMBER(16),
    EMAIL VARCHAR2(30) NOT NULL,
    BTIME DATE,
    PRODUCT_ID INTEGER NOT NULL,
    UWORD VARCHAR2(100),
    CONSTRAINT ORDERS_PK PRIMARY KEY (ORDER_ID),
    CONSTRAINT ORDERS_FK FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCT(PRODUCT_ID)
);

CREATE TABLE ADMIN (
    ADMIN_ID INTEGER NOT NULL,
    ADMINNAME VARCHAR2(20) NOT NULL,
    PASSWORD VARCHAR2(20) NOT NULL,
    CONSTRAINT ADMIN_PK PRIMARY KEY (ADMIN_ID)
);

六、Oracle SQL 基礎與數據類型速查

SQL 四大類

  • DQL (查詢):`SELECT ... FROM ... WHERE ...`
  • DML (操縱):`INSERT`、`UPDATE`、`DELETE`、`MERGE`
  • DDL (定義):`CREATE/ALTER/DROP TABLE|INDEX|VIEW|SEQUENCE`
  • DCL (控制):`GRANT/REVOKE`、`COMMIT/ROLLBACK`、`SAVEPOINT`

常用數據類型

類別類型特點
字符VARCHAR2(n)變長、最大 4000 字節、最常用
字符CHAR(n)定長、最大 2000 字節、不足補空格
數值NUMBER(p,s)精度 p、標度 s、整數/小數通用
日期DATE含年月日時分秒、預設 DD-MON-YY
大對象BLOB/CLOB/NCLOB內部存儲、最大 4GB、圖片/文檔/文本
大對象BFILE外部文件引用、最大 4GB
其他ROWID行物理地址偽列、唯一標識

七、現代化重構指南 (將歷史經驗映射到當前技術棧)

歷史組件現代替代核心價值傳承
JBuilderIntelliJ IDEA / VS CodeIDE 整合調試、重構、版本控制
WebLogic 6.1Spring Boot 3.x / WildFly / OpenLiberty容器管理 Bean、事務、資源、部署
Oracle 8i/9iOracle 19c/21c / PostgreSQL / MySQL 8.0關係數據庫、ACID、SQL 標準
JSP/ServletSpring MVC / Spring WebFlux / Thymeleaf / React/VueWeb 端點、請求處理、視圖渲染
EJB 2.xSpring Bean + @Transactional / JPA聲明式事務、依賴注入、POJO 開發
手工序列Identity/Sequence/UUID / 雪花算法主鍵生成策略
JDBC 直連HikariCP + MyBatis/JPA/jOOQ連線池、ORM/類型安全 SQL
WAR 部署Docker Image / JAR (Spring Boot) / Kubernetes不可變基礎設施、雲原生交付

八、工程化核心經驗總結

  1. 環境標準化:腳本化/容器化安裝配置,消除「在我機器上能跑」
  2. 數據庫先行:ER 圖 → 建表腳本 → 版本控制 (Flyway/Liquibase) → 代碼生成
  3. 分層解耦:Controller/Service/Repository 清晰分離,數據表示物件邊界嚴守
  4. 配置外部化:環境差異零代碼變更 (Spring Profiles / Config Server / K8s ConfigMap)
  5. 自動化驗證:單元/整合/契約/效能測試納入 CI 流水線
  6. 可觀測性內建:日誌/指標/鏈路追蹤從第一行代碼開始

總結

購物網站案例展示了 J2EE 開發全景:基礎設施就緒 → 數據模型落地 → 分層架構實現 → 部署驗證閉環。技術棧會過時,但工程化思維、分層設計原則、配置管理規範、自動化交付理念永不過時。現代開發者應在 Spring Boot/Cloud、容器化、雲原生體系下傳承並發揚這些核心價值。

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