Java-网上图书商城系统
本项目是一个基于Spring Boot框架开发的网上图书商城系统,提供了完整的图书管理、 在线购买、图书借阅、图书归还、订单管理等功能。系统采用前后端分离架构,后端使用 Spring Boot + MyBatis Plus,前端使用Vue.js。








================================================================================
网上图书商城系统项目说明文档
================================================================================
一、项目简介
--------------------------------------------------------------------------------
本项目是一个基于Spring Boot框架开发的网上图书商城系统,提供了完整的图书管理、
在线购买、图书借阅、图书归还、订单管理等功能。系统采用前后端分离架构,后端使用
Spring Boot + MyBatis Plus,前端使用Vue.js。
项目名称:网上图书商城系统
项目编号:springbootq3ulr
开发框架:Spring Boot 2.2.2.RELEASE
数据库:MySQL 5.7.31
二、技术栈
--------------------------------------------------------------------------------
后端技术:
- Spring Boot 2.2.2.RELEASE
- MyBatis Plus 2.3
- MySQL Connector
- Apache Shiro 1.3.2 (权限管理)
- FastJson 1.2.8
- Hutool 4.0.12
- 百度AI SDK 4.4.1
- Apache POI 3.11 (Excel导入导出)
前端技术:
- Vue.js
- Element UI
开发工具:
- JDK 1.8
- Maven
- MySQL 5.7+
三、项目结构
--------------------------------------------------------------------------------
springbootq3ulr/
├── db/ # 数据库脚本目录
│ └── springbootq3ulr.sql # 数据库初始化脚本
├── src/
│ ├── main/
│ │ ├── java/com/
│ │ │ ├── annotation/ # 自定义注解
│ │ │ ├── config/ # 配置类
│ │ │ ├── controller/ # 控制器层
│ │ │ ├── dao/ # 数据访问层
│ │ │ ├── entity/ # 实体类
│ │ │ ├── interceptor/ # 拦截器
│ │ │ ├── service/ # 业务逻辑层
│ │ │ └── utils/ # 工具类
│ │ └── resources/
│ │ ├── admin/ # 后台管理前端
│ │ ├── front/ # 前台前端
│ │ ├── mapper/ # MyBatis映射文件
│ │ ├── static/ # 静态资源
│ │ └── application.yml # 配置文件
│ └── test/ # 测试代码
├── pom.xml # Maven配置文件
└── mvnw # Maven包装器
四、数据库设计
--------------------------------------------------------------------------------
数据库名称:springbootq3ulr
主要数据表:
1. yonghu (用户表)
- 存储用户基本信息:账号、密码、姓名、性别、年龄、手机、邮箱、身份证、头像等
2. users (管理员表)
- 存储管理员账号信息
3. tushuxinxi (图书信息表)
- 图书基本信息:图书名称、图书类型、图片、价格、会员价、库存、图书介绍、
出版社、作者、商户名称等
4. tushuleixing (图书类型表)
- 图书分类信息:类型名称等
5. maijia (卖家表)
- 卖家信息:账号、密码、姓名、性别、手机、邮箱、身份证、头像等
6. cart (购物车表)
- 购物车信息:用户ID、商品ID、商品名称、图片、购买数量、单价、会员价、
商户名称等
7. orders (订单表)
- 订单信息:订单编号、商品表名、用户ID、商品ID、商品名称、商品图片、
购买数量、价格、会员价、商户名称、订单类型、订单状态等
8. address (地址表)
- 收货地址信息:用户ID、地址、收货人、电话、是否默认地址等
9. tushujieyue (图书借阅表)
- 图书借阅信息:图书编号、图书名称、图书类型、图片、借阅数量、借阅时间、
归还时间、账号、姓名、是否审核、审核回复等
10. tushuguihai (图书归还表)
- 图书归还信息:图书编号、图书名称、图书类型、图片、借阅数量、借阅时间、
归还时间、账号、姓名、是否审核、审核回复等
11. discusstushuxinxi (图书讨论表)
- 图书评论信息:关联表名、关联ID、用户ID、用户名、头像、评论内容、
回复内容等
12. news (系统公告表)
- 系统公告信息:标题、简介、图片、内容等
13. storeup (收藏表)
- 用户收藏信息:用户ID、收藏ID、表名、收藏名称、收藏图片等
14. config (配置表)
- 系统配置参数
15. token (Token表)
- 用户登录Token信息
五、功能模块
--------------------------------------------------------------------------------
1. 用户管理模块
- 用户注册、登录
- 个人信息管理
- 密码修改
2. 卖家管理模块
- 卖家注册、登录
- 卖家信息管理
- 图书发布管理
3. 图书管理模块
- 图书信息发布
- 图书分类管理
- 图书信息浏览
- 图书搜索功能
- 图书详情查看
4. 购物车模块
- 添加图书到购物车
- 购物车商品管理
- 购物车结算
5. 订单管理模块
- 订单创建
- 订单查询
- 订单状态管理
- 订单详情查看
6. 地址管理模块
- 收货地址添加
- 收货地址编辑
- 默认地址设置
- 收货人信息管理
7. 图书借阅模块
- 图书借阅申请
- 借阅记录查看
- 借阅审核管理
- 借阅时间管理
8. 图书归还模块
- 图书归还申请
- 归还记录查看
- 归还审核管理
9. 图书讨论模块
- 图书评论发布
- 评论回复功能
- 评论查看
- 评论管理
10. 系统公告模块
- 公告发布
- 公告浏览
11. 收藏功能
- 收藏图书
- 收藏列表管理
12. 后台管理
- 用户管理
- 卖家管理
- 图书管理
- 订单管理
- 借阅管理
- 归还管理
- 内容审核
- 系统配置
- 数据统计
六、环境配置
--------------------------------------------------------------------------------
1. JDK环境
- 版本:JDK 1.8 或以上
- 配置JAVA_HOME环境变量
2. Maven环境
- 版本:3.6+
- 配置MAVEN_HOME环境变量
- 或使用项目自带的mvnw
3. MySQL数据库
- 版本:5.7+ 或 8.0+
- 创建数据库:springbootq3ulr
- 字符集:utf8mb4
4. IDE工具
- IntelliJ IDEA 或 Eclipse
- 推荐使用IntelliJ IDEA
七、安装部署
--------------------------------------------------------------------------------
步骤1:数据库初始化
1. 打开MySQL客户端(如Navicat、MySQL Workbench等)
2. 执行SQL脚本:
打开 db/springbootq3ulr.sql 文件,执行所有SQL语句
或者使用命令行:
mysql -u root -p < db/springbootq3ulr.sql
注意:SQL脚本会自动创建数据库,如果数据库已存在,请先删除再执行
步骤2:修改数据库配置
1. 打开 src/main/resources/application.yml
2. 修改数据库连接信息:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/springbootq3ulr?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
username: root # 修改为你的MySQL用户名
password: root # 修改为你的MySQL密码
步骤3:编译项目
方式一:使用Maven命令
mvn clean install
方式二:使用IDE
- IntelliJ IDEA: 右键项目 -> Maven -> Reload Project -> 等待依赖下载完成
步骤4:运行项目
方式一:使用Maven命令
mvn spring-boot:run
方式二:使用IDE
- 找到 SpringbootSchemaApplication.java
- 右键 -> Run 'SpringbootSchemaApplication'
方式三:打包运行
mvn clean package
java -jar target/springbootq3ulr-0.0.1-SNAPSHOT.jar
步骤5:访问系统
- 后台管理地址:http://localhost:8080/springbootq3ulr/admin/dist/index.html
- 前台地址:http://localhost:8080/springbootq3ulr/front/index.html
- API接口地址:http://localhost:8080/springbootq3ulr
默认管理员账号:
- 用户名:abo
- 密码:abo
默认测试用户:
- 账号:用户1
- 密码:123456
默认测试卖家:
- 账号:卖家1
- 密码:123456
八、API接口说明
--------------------------------------------------------------------------------
系统采用RESTful API设计,主要接口包括:
用户相关:
- POST /yonghu/register - 用户注册
- POST /yonghu/login - 用户登录
- GET /yonghu/info/{id} - 获取用户信息
- POST /yonghu/update - 更新用户信息
卖家相关:
- POST /maijia/register - 卖家注册
- POST /maijia/login - 卖家登录
- GET /maijia/info/{id} - 获取卖家信息
- POST /maijia/update - 更新卖家信息
图书信息相关:
- GET /tushuxinxi/list - 获取图书列表
- GET /tushuxinxi/info/{id} - 获取图书详情
- POST /tushuxinxi/add - 添加图书(卖家/管理员)
- POST /tushuxinxi/update - 更新图书信息(卖家/管理员)
图书类型相关:
- GET /tushuleixing/list - 获取图书类型列表
- POST /tushuleixing/add - 添加图书类型(管理员)
购物车相关:
- POST /cart/add - 添加到购物车
- GET /cart/list - 获取购物车列表
- POST /cart/update - 更新购物车
- POST /cart/delete - 删除购物车商品
订单相关:
- POST /orders/add - 创建订单
- GET /orders/list - 获取订单列表
- GET /orders/info/{id} - 获取订单详情
- POST /orders/update - 更新订单状态
地址相关:
- POST /address/add - 添加收货地址
- GET /address/list - 获取地址列表
- POST /address/update - 更新地址信息
- POST /address/delete - 删除地址
图书借阅相关:
- POST /tushujieyue/add - 申请借阅
- GET /tushujieyue/list - 获取借阅列表
- POST /tushujieyue/update - 更新借阅信息
图书归还相关:
- POST /tushuguihai/add - 申请归还
- GET /tushuguihai/list - 获取归还列表
- POST /tushuguihai/update - 更新归还信息
图书讨论相关:
- POST /discusstushuxinxi/add - 发布评论
- GET /discusstushuxinxi/list - 获取评论列表
- POST /discusstushuxinxi/reply - 回复评论
系统公告相关:
- GET /news/list - 获取公告列表
- GET /news/info/{id} - 获取公告详情
收藏相关:
- POST /storeup/add - 添加收藏
- GET /storeup/list - 获取收藏列表
- POST /storeup/delete - 删除收藏
文件上传:
- POST /file/upload - 上传文件
九、注意事项
--------------------------------------------------------------------------------
1. 数据库配置
- 确保MySQL服务已启动
- 确保数据库名称、用户名、密码正确
- 确保数据库字符集为utf8mb4(支持emoji等特殊字符)
2. 端口占用
- 默认端口:8080
- 如端口被占用,修改 application.yml 中的 server.port
3. 文件上传
- 上传文件大小限制:300MB
- 上传文件保存在 static/upload/ 目录
4. 跨域问题
- 如遇到跨域问题,检查拦截器配置
- 确保前端请求地址正确
5. Token认证
- 系统使用Token进行身份认证
- Token有效期为1小时(可在代码中修改)
6. 权限控制
- 管理员、卖家、普通用户有不同的权限
- 部分接口需要登录后才能访问
- 部分接口需要特定角色权限
7. 图书借阅归还
- 借阅和归还需要审核
- 管理员可以审核借阅和归还申请
- 借阅时间由系统自动记录
十、常见问题
--------------------------------------------------------------------------------
Q1: 启动报错 "No database selected"
A1: 确保已执行数据库初始化脚本,或检查数据库连接配置
Q2: 启动报错 "Table 'xxx' doesn't exist"
A2: 检查是否已执行完整的SQL脚本,确保所有表都已创建
Q3: 前端页面无法访问
A3: 检查前端资源是否已编译,路径是否正确
Q4: 文件上传失败
A4: 检查 static/upload/ 目录是否存在且有写权限
Q5: 登录后提示Token无效
A5: 检查系统时间是否正确,Token可能已过期
Q6: 图书借阅功能无法使用
A6: 检查借阅审核流程,确保管理员已审核通过
Q7: 订单支付功能
A7: 系统支持订单创建,支付功能需要集成第三方支付接口
十一、开发建议
--------------------------------------------------------------------------------
1. 代码规范
- 遵循Java编码规范
- 使用有意义的变量和方法名
- 添加必要的注释
2. 数据库操作
- 使用MyBatis Plus提供的便捷方法
- 复杂查询使用XML映射文件
- 注意SQL注入防护
3. 异常处理
- 统一异常处理
- 返回友好的错误信息
- 记录错误日志
4. 性能优化
- 合理使用数据库索引
- 避免N+1查询问题
- 使用缓存提升性能
5. 安全建议
- 密码加密存储
- 防止SQL注入
- 防止XSS攻击
- 接口权限验证
- 文件上传类型验证
6. 功能扩展
- 可以集成支付接口(支付宝、微信支付)
- 可以添加图书推荐算法
- 可以添加图书评分系统
- 可以添加图书库存预警
- 可以添加图书销售统计
十二、项目维护
--------------------------------------------------------------------------------
1. 定期备份数据库
2. 定期检查日志文件
3. 及时更新依赖版本
4. 修复已知bug
5. 优化系统性能
6. 监控系统运行状态
十三、技术支持
--------------------------------------------------------------------------------
如遇到问题,请检查:
1. 日志文件:查看控制台输出或日志文件
2. 数据库连接:确认数据库服务正常
3. 配置文件:确认配置信息正确
4. 依赖版本:确认依赖版本兼容
5. 端口占用:确认端口未被占用
6. 文件权限:确认文件读写权限
十四、系统特色
--------------------------------------------------------------------------------
1. 完整的电商功能
- 图书浏览、搜索、购买
- 购物车、订单管理
- 地址管理、支付流程
2. 图书借阅归还功能
- 图书借阅申请
- 借阅审核管理
- 图书归还处理
- 借阅记录查询
3. 多角色管理
- 普通用户:购买图书、借阅图书
- 卖家:发布图书、管理订单
- 管理员:系统管理、内容审核
4. 完善的评论系统
- 图书评论发布
- 评论回复功能
- 评论管理
5. 前后端分离架构
- 前端使用Vue.js,界面美观
- 后端提供RESTful API
- 前后端独立部署
6. 权限管理完善
- 基于Token的身份认证
- 角色权限控制
- 接口级别权限验证
================================================================================
文档版本:1.0
最后更新:2024年
================================================================================

点击播放项目演示
Click to play project demo
购买源码保证可本地运行,如需协助运行或定制开发,请 联系作者