# Elm_Elementary **Repository Path**: LCC_Z/elm_-elementary ## Basic Information - **Project Name**: Elm_Elementary - **Description**: 基于 **Java + MySQL** 的控制台后台管理系统,以及 **HTML / CSS / JavaScript** 的移动端 Web 前端页面。项目用于软件工程初级实训,模拟饿了么外卖的核心业务流程。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-27 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 饿了么外卖系统(初级实训) 基于 **Java + MySQL** 的控制台后台管理系统,以及 **HTML / CSS / JavaScript** 的移动端 Web 前端页面。项目用于软件工程初级实训,模拟饿了么外卖的核心业务流程。 ## 功能特性 ### 后台管理(控制台) | 角色 | 入口类 | 主要功能 | |------|--------|----------| | 平台管理员 | `ElmAdminEntry` | 登录、查看/搜索商家、新建商家、删除商家 | | 商家 | `ElmBusinessEntry` | 登录、查看/修改商家信息、修改密码、食品增删改查 | ### 前端 Web(静态页面) - 首页浏览与分类入口 - 用户登录 / 注册 - 商家列表、商家详情 - 下单、订单列表、支付页面 > 当前前端为静态演示页面,尚未与后端 API 对接;后台通过 JDBC 直接操作 MySQL。 ## 技术栈 | 模块 | 技术 | |------|------| | 后端 | Java 23、Maven、JDBC、Lombok、JUnit 5 | | 数据库 | MySQL 8.x | | 前端 | HTML5、CSS3、原生 JavaScript | | 前端依赖 | normalize.css、Font Awesome 6 | ## 项目结构 ``` SoftwareEngineerTrainElementary/ ├── front/ │ └── elm_web/ # 前端静态页面 │ ├── index.html # 首页 │ ├── login.html # 登录 │ ├── register.html # 注册 │ ├── businessList.html # 商家列表 │ ├── businessInfo.html # 商家详情 │ ├── order.html # 下单 │ ├── orderList.html # 订单列表 │ ├── payment.html # 支付 │ ├── css/ # 样式文件 │ ├── js/ # 脚本文件 │ └── node_modules/ # 前端第三方依赖 └── rear/ └── elm_admin/ # 后端 Maven 工程 ├── pom.xml └── src/ ├── main/java/com/elm/ │ ├── ElmAdminEntry.java # 管理员入口 │ ├── ElmBusinessEntry.java # 商家入口 │ ├── dao/ # 数据访问层 │ ├── view/ # 视图/业务逻辑层 │ ├── po/ # 实体类 │ └── util/ # 工具类(数据库连接等) ├── main/resources/ │ └── application.yml # 数据库配置 └── test/java/ # 单元测试 ``` ## 环境要求 - **JDK** 23(或兼容版本,需支持项目配置的预览特性) - **Maven** 3.6+ - **MySQL** 8.0+ - 现代浏览器(Chrome、Edge、Firefox 等) - (可选)本地静态服务器或 IDE 内置预览,用于访问前端页面 ## 快速开始 ### 1. 克隆项目 ```bash git clone <你的仓库地址> cd SoftwareEngineerTrainElementary ``` ### 2. 创建数据库 在 MySQL 中创建数据库并建表(表名与字段需与 DAO 层一致): ```sql CREATE DATABASE IF NOT EXISTS elm DEFAULT CHARACTER SET utf8mb4; USE elm; -- 管理员表 CREATE TABLE admin ( adminId INT PRIMARY KEY AUTO_INCREMENT, adminName VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL ); -- 商家表 CREATE TABLE business ( businessId INT PRIMARY KEY AUTO_INCREMENT, password VARCHAR(100) NOT NULL, businessName VARCHAR(100), businessAddress VARCHAR(200), businessExplain VARCHAR(500), starPrice DOUBLE, deliveryPrice DOUBLE ); -- 食品表 CREATE TABLE food ( foodId INT PRIMARY KEY AUTO_INCREMENT, foodName VARCHAR(100), foodExplain VARCHAR(500), foodPrice DOUBLE, businessId INT, FOREIGN KEY (businessId) REFERENCES business(businessId) ); ``` 按需插入管理员、商家等初始数据后即可使用。 ### 3. 配置数据库连接 编辑 `rear/elm_admin/src/main/resources/application.yml`: ```yaml diver: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/elm?useSSL=false&allowPublicKeyRetrieval=true user: root password: 你的数据库密码 ``` > 请勿将真实密码提交到公开仓库,建议使用环境变量或本地未跟踪的配置文件。 ### 4. 编译并运行后端 ```bash cd rear/elm_admin mvn clean compile ``` **管理员后台:** ```bash mvn exec:java -Dexec.mainClass="com.elm.ElmAdminEntry" ``` 或在 IDE 中直接运行 `com.elm.ElmAdminEntry` 的 `main` 方法。 **商家后台:** ```bash mvn exec:java -Dexec.mainClass="com.elm.ElmBusinessEntry" ``` 或在 IDE 中运行 `com.elm.ElmBusinessEntry` 的 `main` 方法。 ### 5. 运行前端 进入前端目录: ```bash cd front/elm_web ``` 使用以下任一方式打开页面: - 用浏览器直接打开 `index.html` - 使用 VS Code / Cursor 的 Live Server 插件 - 使用 Python 简易服务器: ```bash python -m http.server 8080 ``` 然后在浏览器访问 `http://localhost:8080/index.html`。 ## 运行测试 ```bash cd rear/elm_admin mvn test ``` ## 架构说明 后端采用经典分层结构: ``` Entry(入口) → View(业务逻辑) → Dao(数据访问) → MySQL ``` - **po**:持久化对象(`Admin`、`Business`、`Food`) - **dao / dao.impl**:数据库 CRUD - **view / view.impl**:控制台交互与业务流程 - **util**:`DBUtil` 负责连接管理,`ConfigUtil` 读取 `application.yml` ## 常见问题 | 问题 | 可能原因 | 处理建议 | |------|----------|----------| | 无法连接数据库 | MySQL 未启动或配置错误 | 检查服务状态与 `application.yml` | | 表不存在 / 字段不匹配 | 未执行建表 SQL | 按上文 SQL 创建表结构 | | 前端样式异常 | 未安装依赖 | 确认 `node_modules` 存在,必要时重新安装 normalize.css、fontawesome | | Maven 编译失败 | JDK 版本不符 | 使用 JDK 23 并检查 `pom.xml` 中的编译配置 | ## 后续规划 - [ ] 为前端提供 REST API,实现前后端分离 - [ ] 用户、订单、购物车等完整业务表与接口 - [ ] 统一配置管理与密码加密 - [ ] 补充数据库初始化脚本(`schema.sql` / `data.sql`) ## 许可证 本项目仅供学习与交流使用。若用于课程作业或开源发布,请根据实际情况补充许可证说明。 ## 作者 软件工程初级实训项目 — 2025 春季