# 项目功能介绍
# 项目导入
首先执行 hmdp.sql 脚本
其中的表有:
- tb_user:用户表
- tb_user_info:用户详情表
- tb_shop:商户信息表
- tb_shop_type:商户类型表
- tb_blog:用户日记表(达人探店日记)
- tb_follow:用户关注表
- tb_voucher:优惠券表
- tb_voucher_order:优惠券的订单表
[!NOTE]
Mysql 的版本采用 5.7 及以上版本
在我们导入的过程中遇到错误停止,刷新数据库表发现只导入了三张表,( 遇到这种情况建议将SQL语句拿出来单独跑,这样出错会有错误提示信息
),发现原来是 begin_time
和 end_time
设置默认值错误,建表语句如下
1 | DROP TABLE IF EXISTS `tb_seckill_voucher`; |
mysql ⽇期时间设置默认 0000-00-0000:00:00 出错。
DEFAULT ‘0000-00-00 00:00:00’(零时间戳),这不满足 sql_mode 中的 NO_ZERO_DATE 而报错。
sql_mode 有两种,一种是空值,一种是严格模式,会给出很多默认设置。在 MySQL5.7 之后默认使用严格模式。
NO_ZERO_DATE:若设置该值,MySQL 数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
在命令行中设置 sql_mode:
1 | SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; |
[!CAUTION]
实际操作后无效~
# 导入 sql 的目前解决方案:
timestamp
类型的取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59
1 | `begin_time` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '生效时间', |
重跑 sql 文件后执行成功!
# 后端项目导入
在 idea 中直接导入后端项目:
修改 application.yaml 文件的配置为自己的配置,server port 如果要修改的话,前端 nginx.conf 文件中的映射端口也要修改,主要修改数据库和 redis 的配置信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29server:
port: 8081
spring:
application:
name: hmdp
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC
username: root
password: asasas11
redis:
host: 127.0.0.1
port: 6379
password: asasas11
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
jackson:
default-property-inclusion: non_null # JSON处理时忽略非空字段
mybatis-plus:
type-aliases-package: com.hmdp.entity # 别名扫描包
logging:
level:
com.hmdp: debug
pattern:
dateformat: mm:ss.SSS找到 RedissonConfig 文件,修改 redis 相关信息。
1
2
3
4
5
6
7
8
9
10
11
12
public class RedissonConfig {
public RedissonClient redissonClient(){
// 配置
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("asasas11");
// 创建RedissonClient对象
return Redisson.create(config);
}
}确保相关依赖成功导入后,启动项目,测试 http://localhost:8081/shop-type/list,是否成功返回 json 数据信息。
<img src="image-20240604200933777.png" alt="image-20240604200933777" style="zoom:50%;" />
至此,后端项目成功导入
# 前端项目导入
mac 用户如果未安装 nginx,首先安装 nginx
mac 用户安装 nginx 教程
1 | https://blog.csdn.net/qq_45695853/article/details/131695755 |
安装完毕后,找到 nginx 安装目录 /opt/homebrew/Cellar/nginx/1.25.4, 将前端项目下的 html 文件复制过去
1 | open /opt/homebrew/Cellar/nginx/1.25.4 |
在其 html 目录下复制粘贴 hmdp
修改 nginx 的 config 文件
找到 /opt/homebrew/etc/nginx 下的 nginx.conf, 并将 hmdp 里面的 nginx.conf 复制粘贴过来,替换掉原来的
1 | open /opt/homebrew/etc/nginx |
这里有一个问题
1 | open /opt/homebrew/var/www/ |
这两个文件夹下我都放置了前端项目,但是删了其中任何一个都会出现 404 错误
在 nginx.conf 文件中,以下这些地方可以修改反向代理到后端的端口
mac brew 启动服务时报错 “Bootstrap failed: 5: Input/output error”
https://juejin.cn/post/7149804799314100260
Mac 环境下安装 nginx 并本地部署项目
https://blog.csdn.net/qq_45695853/article/details/131695755