# 电商系统 **Repository Path**: chennanzhe/e-commerce-system ## Basic Information - **Project Name**: 电商系统 - **Description**: 一套基于 Java EE 的 B2C 电子商务教学 / 实战项目,采用经典 SSH(Struts + Spring + Hibernate) 分层架构。仓库内包含同一套业务逻辑的两个数据库版本实现 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电商系统(B2C 项目实战) 一套基于 **Java EE** 的 B2C 电子商务教学 / 实战项目,采用经典 **SSH(Struts + Spring + Hibernate)** 分层架构。仓库内包含**同一套业务逻辑的两个数据库版本实现**: - `b2cShop(oracle11g版)` —— 后台 Oracle 11g,包含「前台商城门户」与「后台管理」两个工程 - `ninNiuShop(sql2008版)` —— 后台 SQL Server 2008,单工程实现(含商品评价模块) --- ## 项目结构 ``` e-commerce-system/ ├── README.md # 本文件 ├── README.en.md # 英文说明 ├── B2C项目实战整体功能介绍.txt # 功能清单(原始说明,GBK 编码) │ ├── b2cShop(oracle11g版)/ # Oracle 11g 版(两套工程) │ ├── B2C_SHOP_2UI/ # 【前台】商城门户 / 顾客端 │ │ ├── src/B2C_SHOP_2UI/ │ │ │ ├── ENTITY/ # 实体:SpGoods / SpGoodtype / SpMembers / │ │ │ │ # SpOrderdtl / SpOrders / SpShopcar / │ │ │ │ # SpUser / V_GOODS / V_ORDERS │ │ │ ├── DAO/ # 数据访问接口 │ │ │ ├── DAOIMPL/ # 接口实现(继承 BaseDaoImpl) │ │ │ ├── SERVICE/ # 业务逻辑层 │ │ │ └── DATAACCESS/ # DataProvider 通用数据访问层 │ │ └── WebContent/ # 门户页面:adver/dayGood/hotGood/youView 等 │ │ │ ├── B2C_SHOP_2WEB/ # 【后台】运营管理端 │ │ ├── src/ │ │ │ ├── applicationContext.xml # Spring IoC 配置 │ │ │ ├── struts.xml # Struts2 配置 │ │ │ ├── hibernate.cfg.xml # Hibernate(OracleDialect) │ │ │ ├── entityConfig/ # *.hbm.xml 实体映射 │ │ │ └── serviceConfig/ # 各模块 Struts Action 配置 │ │ └── WebContent/ # DWZ 后台界面(themes/Pages/scripts) │ │ │ ├── SHOP2(对象).sql # Oracle DDL(建表) │ └── SHOP2(数据).sql # Oracle 初始化数据 │ └── ninNiuShop(sql2008版)/ # SQL Server 2008 版(单工程) ├── src/niuNiuShop/ │ ├── Common/ # 基类、验证码、DWZ JSON 结果 │ ├── Entitys/ # Goods / GoodsView / Goodstype / │ │ # SysUser / Goodpoint / GoodpointView │ ├── DaoImpl/ # 数据访问实现 │ └── Services/ # 业务逻辑 ├── WebContent/ # DWZ 后台界面(多主题)+ xheditor 编辑器 ├── WebContent/WEB-INF/web.xml └── src/hibernate.cfg.xml # Hibernate(SQLServerDialect) ``` --- ## 技术栈 | 类别 | 选型 | | --- | --- | | 语言 | Java(JSP / Servlet) | | MVC 框架 | Struts 2.3 | | ORM 框架 | Hibernate 4.x(OracleDialect / SQLServerDialect) | | IoC 容器 | Spring 4.0.3(后台管理端) | | 数据库 | Oracle 11g **或** SQL Server 2008 | | 后台 UI | DWZ jQuery 企业级后台框架(多套主题) | | 富文本 | xheditor | | 验证码 | 自研 `SecurityCodeImageAction` 图形验证码 | | 开发环境 | Eclipse(`.project` / `.classpath` / `.settings`) | > 注:配置文件头部的 DTD 版本号仍为 3.0,但 `WEB-INF/lib` 中实际引入的是 **Spring 4.0.3 + Hibernate 4.3.6**,以实际依赖为准。 --- ## 功能模块 ### 后台管理(运营端) 1. 商品管理:列表展示(视图/关联表)、参数化查询、**基于 Oracle `rownum` 的分页**、添加 / 修改 / 删除 / **批量删除**、**上架 / 下架**、图片上传 2. 商品分类管理:分类列表、查询、分页、添加 / 修改 / 删除 / 批量删除 3. 订单管理:订单列表、**订单明细查看**、**发货** 4. 会员与员工管理 5. 系统登录与图形验证码 ### 前台商城(顾客端) 6. 会员注册 / 登录 7. 商品展示(广告、每日好货、热门商品、今日推荐等门户栏目) 8. 购物车 → 去结算 → 提交订单(支付) 9. 查看订单、**收货操作** --- ## 数据库设计 ### Oracle 版(schema `B2C`) | 表名 | 说明 | | --- | --- | | `SP_GOODS` | 商品表 | | `SP_GOODTYPE` | 商品分类表 | | `SP_MEMBERS` | 会员表 | | `SP_ORDERS` | 订单主表 | | `SP_ORDERDTL` | 订单明细表 | | `SP_SHOPCAR` | 购物车表 | | `SP_USER` | 用户 / 员工表 | 执行顺序:先导入 `SHOP2(对象).sql` 建表,再导入 `SHOP2(数据).sql` 初始化数据。 数据库账号示例:`b2c / b2c`,连接串 `jdbc:oracle:thin:@127.0.0.1:1521:orcl`。 ### SQL Server 版(库名 `NiuNiuShop`) 实体:`Goods`、`Goodstype`、`SysUser`、`Goodpoint`(商品评价)、以及对应视图 `GoodsView` / `GoodpointView`。 连接串 `jdbc:sqlserver://127.0.0.1\sqlexpress;databaseName=NiuNiuShop`,账号 `sa / sa`。 --- ## 架构设计(核心思想) 项目重点演示了**数据访问层的分层与优化**,是教学的核心: - **分层**:`ENTITY`(实体) → `DAO`(接口) → `DAOIMPL`(实现,继承 `BaseDaoImpl` 并实现接口) → `SERVICE`(业务)。 - **接口 + Spring 注入**:业务层通过接口调用 DAO,由 Spring 完成依赖注入(见 `applicationContext.xml`)。 - **通用数据访问层 `DataProvider`**:基于 Hibernate 封装 `Session` / 事务管理,使用 `ThreadLocal` 管理 Session;提供 `getEntity` / `getList` / `getView` 等泛型方法,并以 `SqlParameter` 接收命名参数,统一供各 `BaseDaoImpl` 调用。 - **分页**:Oracle 版通过 `rownum` 伪列实现物理分页。 --- ## 快速开始 ### 1. 准备数据库 - **Oracle 版**:创建用户/表空间(schema `B2C`),依次执行 `b2cShop(oracle11g版)/SHOP2(对象).sql` 与 `SHOP2(数据).sql`。 - **SQL Server 版**:新建数据库 `NiuNiuShop`,按 `hibernate.cfg.xml` 中的表映射建表(可开启 `hbm2ddl` 自动建表)。 ### 2. 导入工程 用 Eclipse 导入对应子目录下的工程(`B2C_SHOP_2UI`、`B2C_SHOP_2WEB` 或 `ninNiuShop`)。 ### 3. 修改数据库连接 编辑各工程的 `hibernate.cfg.xml`,将 `connection.url` / `username` / `password` 改为本地实际配置。 ### 4. 部署运行 将工程发布到 **Tomcat**(或同类 Servlet 容器),访问: - 前台门户:`B2C_SHOP_2UI` 的 `index.jsp` - 后台管理:`B2C_SHOP_2WEB` 的 `login.jsp`(或 `ninNiuShop` 的 `login.jsp`) --- ## 说明 - 本仓库为 B2C 电商**实战教学示例**,侧重演示 SSH 分层架构、通用 DAO 封装、参数化查询、分页与前后台业务流转。 - 原始功能清单见 `B2C项目实战整体功能介绍.txt`。