当前位置: 首页 > news >正文

黑马点评笔记千年后的大总结

随便唠几句

之前做了黑马点评做了一些记录,秉承着伟大开源精神,最近会陆续整理出来,针对一些问题给出修复方案。由于这个项目确实比较老了,之前还是的确碰到了不少问题。

第一部分总结

问题一:lombok与jdk版本不兼容

问题描述:由于本人使用的是jdk21,jdk21中删除了JCImport.qualid字段,springboot 2.3.12管理的lombok版本太旧,不支持,仍然通过反射访问该字段。

解决方案:在pom.xml中显式指定lombok版本为1.18.30+

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <optional>true</optional> </dependency>

问题二:Mysql 8连接认证失败

问题描述:mysql 8 默认使用caching_sha2_password 认证插件,需通过公钥检索完成认证,但是旧版MySQL驱动5.1.47默认禁止公钥检索

解决方案:在jdbc url中添加allowPublicKeyRetrieval=true参数

spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true username: root password: 你的密码

问题三:MySQL 8严格模式下timestamp默认值不合法

问题描述: MySQL 8默认开启严格模式(NO_ZERO_DATE) ,黑马点评中的’0000-00-00 00:00:00’是不合法的timestamp默认值,但是tb_seckill_voucher表中的begin_time和end_time两个字段却使用了这个默认值

解决方案:将默认值从’0000-00-00 00:00:00’修改为CURRENT_TIMESTAMP.

修改前sql文件

CREATE TABLE `tb_seckill_voucher` ( `voucher_id` bigint(20) UNSIGNED NOT NULL COMMENT '关联的优惠券的id', `stock` int(8) NOT NULL COMMENT '库存', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `begin_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '生效时间', `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '失效时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `begin_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '生效时间', `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '失效时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`voucher_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '秒杀优惠券表,与优惠券是一对一关系' ROW_FORMAT = Compact;

修改后sql文件

CREATE TABLE `tb_seckill_voucher` ( `voucher_id` bigint(20) UNSIGNED NOT NULL COMMENT '关联的优惠券的id', `stock` int(8) NOT NULL COMMENT '库存', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `begin_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生效时间', `end_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '失效时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`voucher_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '秒杀优惠券表,与优惠券是一对一关系' ROW_FORMAT = Compact;

解决了这部分的内容,你的项目大概率就可以跑起来并且拿到数据了,接下来就去引入前端的代码即可。

http://www.gsyq.cn/news/1451322.html

相关文章:

  • 2026年质量好的农业机械力传感器/航空航天力传感器/苏州机器人力传感器/自动化设备力传感器优质厂家汇总推荐 - 行业平台推荐
  • 深入解析JetBrains Maple Mono字体合成架构与实现原理
  • 山东大学项目实训个人纪实(6)——降低唇形同步延迟及性能需求
  • ECG情绪识别避坑指南:WESAD和DREAMER数据集实战中的5个常见问题与解决
  • 深度解析:YouTube 自动标注 AI 生成内容背后的技术博弈与架构演进
  • 决策树特征选择实战:用信息增益帮你挑出‘好’特征(以鸢尾花数据集为例)
  • 从 inactive 到 runtime object,ABAP 开发对象激活机制的实战理解
  • 茄子快传与 WeTransfer 差距在哪?Bending Spoons 收购后 WeTransfer 月流水涨至 400 万+美元
  • Translumo:如何在3分钟内掌握Windows实时屏幕翻译的终极技巧
  • 导师骂你PPT逻辑乱?这个网站,自动帮你把论文变答辩神器
  • 告别旧版!Vitis Unified IDE 2023.2 保姆级配置指南:从OpenCV到Vision库,手把手搞定HLS开发环境
  • 零信任架构下AI视频分析平台落地全链路(2024最新NIST SP 800-207+ISO/IEC 27001双标验证)
  • openEuler磁盘空间告急?别慌,这份LVM扩容避坑指南帮你一次搞定
  • 室友问我为什么答辩前还在睡大觉?因为我PPT是自动生成的
  • 开源 AI 绘图神器,一键生成可编辑架构图
  • JetBrains IDE试用期终极重置指南:3步快速恢复30天完整功能
  • 解放双手,随叫随到:一文读懂智能驾驶“智能召唤”技术
  • openEuler磁盘空间告急?别急着重装,手把手教你无损扩容/home和/分区
  • Windows蓝牙连接PS3控制器终极指南:BthPS3驱动完整解决方案
  • 2026年新消息:在沧州寻找管夹子直销工厂的可靠选择指南 - 2026年企业资讯
  • 机器人手眼标定精度总是不达标?可能是这5个实操细节没做好(含旋转中心与角度标定避坑)
  • 魔兽争霸3终极优化指南:5分钟解决卡顿、宽屏和FPS限制问题
  • 从光伏MPPT到车载充电:Buck-Boost电路在新能源里的那些‘隐藏’用法与仿真技巧
  • Steam成就管理器:3分钟解锁全成就的游戏神器指南
  • 从开发到上线:UniApp小程序跳转全环境(develop/trial/release)配置与调试指南
  • 一屏透明化三维立体重构安全信息哪个机构技术强
  • 别再只做九点标定了!Halcon+C#实战:手眼标定完整流程与旋转中心补偿避坑指南
  • 【万字文档+源码】基于springBoot+vue果树生长管理系统-项目分享学习
  • 告别BOM错误!手把手教你用Access+Excel为OrCAD CIS搭建企业级元器件库(附避坑指南)
  • 别再死记硬背三极管工作状态了!用这个NPN管放大原理动画,5分钟彻底搞懂