苍穹外卖技术点

news/2025/4/1 22:31:32/文章来源:https://www.cnblogs.com/Ng-123/p/18795498

完善登录功能

1 员工表中的密码是明文存储,安全性太低

解决办法

  • 对前端提交的明文密码进行MD5加密后再与数据库中的密码进行对比。
  • 利用SPring框架自带的工具类DigestUtils
password= DigestUtils.md5DigestAsHex(password.getBytes());

2 新增员工时,若录入的用户名已存在,抛出异常没有处理。

分析原因和解决方法

  • 创建员工表时,规定用户名是唯一的。
  • 若录入的用户名已存在,则会抛异常
  • 通过全局异常处理器来统一捕获此问题引发的SQL异常:SQLIntegrityConstraintViolationException
@ExceptionHandlerpublic Result exceptionHandler(SQLIntegrityConstraintViolationException ex) {//Duplicate entry 'lisi' for key 'employee.idx_username'String message = ex.getMessage();if(message.contains("Duplicate entry")){String[] split = message.split(" ");String username=split[2];String msg=username+ MessageConstant.ALREADY_EXIST;return Result.error(msg);}else {return Result.error(MessageConstant.UNKNOWN_ERROR);}}

3 如何通过某种方式动态获取当前登录用户的id


解决方案

  • 使用ThreadLocal存储登陆用户的id
  • 封装ThreadLocal为一个工具类,利用get和set方法存值和取值
public class BaseContext {public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();public static void setCurrentId(Long id) {threadLocal.set(id);}public static Long getCurrentId() {return threadLocal.get();}public static void removeCurrentId() {threadLocal.remove();}}

后端给前端响应的数据格式存在问题(日期格式)

注意:常用方式二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906772.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HackTheBox-Linux-Brainfuck

HTB-Linux-Brainfuck OSCP预备线路box1brainfuck 一、攻击流程:使用nmap进行探测开放端口和服务。 sudo nmap --min-rate=1000 -sT -sC -sV [target]通过上图可以看出,有22端口的ssh服务、25端口的ftp端口、,然后我们将爆出的域名放入host文件中。不过要注意,首先host文件在…

技术篇!Air8201如何使用LuatOS进行电源管理功能~

本文将从系统架构、API接口、实战配置三个维度,解析如何利用LuatOS实现Air8201的智能电源管理,从而延长设备寿命并降低能耗成本。 一、电源管理介绍 电源管理是电子设备中非常重要的一部分,尤其是在移动设备和嵌入式系统中。它直接关系到设备的能效、续航时间和整体性能。以…

一篇搞定!如何使用Luatools工具烧录一个具体的项目到Air780EPM核心板中

在物联网(IoT)项目开发中,将编译好的固件程序成功烧录至目标硬件是决定项目成败的关键环节。本篇文章重点介绍如何使用Luatools工具烧录一个具体的项目到Air780EPM开发板中。 一、准备好项目文件 在烧录项目文件到Air780EPM开发板之前,你需要准备好以下几种项目文件: 1. 内…

快速上手!Air780EPM:LuatOS物联网开发入门指南~

在物联网开发领域,选择合适的硬件平台与操作系统是项目成功的关键。本文将带领你从零开始,通过详细的步骤与示例代码,掌握Air780EPM与LuatOS的入门开发流程,并深入探讨其核心功能与扩展潜力。 一、必须先要告诉你的一些废话 这里,先要告诉你一些前提条件,虽然听着像是废话…

Qwen2.5-Omni技术报告

摘要 在本报告中,我们介绍了Qwen2.5-Omni,这是一种端到端的多模态模型,旨在感知包括文本、图像、音频和视频在内的多种模态,并同时以流式方式生成文本和自然语音响应。为了实现多模态信息输入的流式处理,音频和视觉编码器采用了分块处理方法。该策略有效地分离了对多模态数…

若依(ruoyi)前后端分离项目集成积木报表

若依(ruoyi)前后端分离项目集成积木报表 致敬: 1:致敬若依开源项目(本文使用的是前后端分离版本)若依官网:https://www.ruoyi.vip/2:致敬积木开源项目积木报表官网:https://www.jimureport.com/3:致敬CSDN大神的文章(我是根据他的原文一步步配置的,如有版权问题,可随…

k8s部署HA高可用集群

1.初始化系统 2.内存升级 3.安装k8s组件 4.编译kubeadm,修改永久证书授权 5.将kubeadm拷贝到两台master上,然后/usr/bin/kubeadm备份,将新编译的kubeadm 6.部署keepalived 7.初始化k8s 【master1】 7.1 编写kubeadm-config.yaml cat kubeadm-config.yaml apiVersion: kubead…

engine2x_低代码系统快速配置表格的xx列固定并且不随着x轴的滚动而滚动

代码:var is_long_width = false;//定义标识//数据列表的回调 function get_portal_data_list_done_back() {if (is_long_width === true) {find_element_by_class("table-set").css("position", "sticky").css("right", 0).css(&quo…

上下界网络流

上下界网络流 上下界流就是在普通的网络中加了下界。却还是要对于非源汇点,满足入流=出流,于是可能存在不合法的情况。 基础款 无源汇可行流 就是:对于每个点,入流 = 出流对于每条边,流量 $\in $ 合法区间我们先满足其下界,但这样可能出现入流 \(\ne\) 出流的情况,于是在…

NPIO-导出数据到xls中设置时间格式的值可筛选

//定义时间格式: var xSSFCellStyle1 = workbook.CreateCellStyle();var format = workbook.CreateDataFormat();xSSFCellStyle1.DataFormat = format.GetFormat("yyyy-MM-dd HH:mm:ss"); // 循环中 判断是否是时间类型 yes if (val.is_datetime()){ dataRow.Cre…

虚幻5入门,MashRunner项目1

继续之前油管上Cobra Code的The Ultimate Unreal Engine 2D Game Development Course课程的学习,这是第二个项目MashRunner 一.创建项目 启动虚幻引擎,创建一个空白项目,命名为MashRunner。之后打开VS,在MashRunner.Build.cs中添加一下插件包 using UnrealBuildTool;public…

C# 通过EtherCAT 控制伺服电机(无需板卡或PLC)

前言 无需使用板卡或PLC 用C#配合普通电脑 直接控制伺服电机 环境:vs2022 .Net9 WinPcap_4_1_3.exe Win11 一、引用库二、控制伺服 1.添加EtherCAT主站及从站 EtherCATMaster _etherCATMaster; EtherCATSlave_CiA402 _axis; private void Form1_Load(object sender, EventArgs …