提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
瑞吉外卖-后台登陆功能
提示:这里可以添加本文要记录的大概内容:
瑞吉外卖后台登录功能实现。
提示:以下是本篇文章正文内容,下面案例可供参考
一、判断是否登录成功流程图
二、处理逻辑
三.启动报错
将@Service 注解写在了接口上,注意,接口不能被代理对象,应该写在接口的实现类上
四.唯一索引
这里的Unique代表唯一索引,字段值不能相同
五.自实现登录逻辑
/**
* @param httpServletRequest 将登录成功的员工信息存入session中
* @param employee 前端传过来的登录信息,查数据库判断是否登录成功
* @return
*/
@PostMapping("/login")
public Result login(HttpServletRequest httpServletRequest, @RequestBody Employee employee) {
Result result = Result.error("登陆失败");
String passwordMd5 = MD5Util.getMD5(employee.getPassword());
Employee employee1 = employeeService.selectByUsername(employee.getUsername());
if (employee1 != null) {
if (passwordMd5.equals(employee1.getPassword())) {
if (1 == employee1.getStatus()) {
result = Result.success(employee1);
httpServletRequest.getSession().setAttribute("emp", employee1);
}
}
}
return result;
}
六.老师实现登录逻辑
采用了条件构造器QueryWrapper方法
String passwordMd5 = MD5Util.getMD5(employee.getPassword());
//根据页面提交的用户名username查询数据库
LambdaQueryWrapper<Employee> eq = new LambdaQueryWrapper<>();
eq.eq(Employee::getUsername, employee.getUsername());
Employee one = employeeService.getOne(eq);
判断用户名和数据库中的username是否相等
条件构造器QueryWrapper方法详解:https://blog.51cto.com/u_12835254/5273562
使用过程中报错:
Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not "opens java.lang.invoke" to unnamed module @1bd4fdd
排查原因是jdk版本过高,改成1.8之后成功运行。条件构造器QueryWrapper方法的使用解释可以看看这位大哥的博客。
https://blog.csdn.net/qq_57216731/article/details/125019707