课程名称:Java支付全家桶 企业级各类支付手段一站式解决方案
课程章节:5-2 封装用户登陆的后端模块?
主讲老师:神思者
今天课程学习的主要知识点内容包括:
开发用户登录网页模块的各个开发步骤和具体实现。
开发用户登录网页模块的各个开发步骤和具体实现如下:
(1)tep1: 定义登录表单 LoginForm,主要代码如下:
@Data @ApiModel(value = "登录表单") public class LoginForm { @ApiModelProperty(value = "用户名") @NotBlank(message="用户名不能为空") @Pattern(regexp = "^[A-Za-z0-9]{3,20}$", message = "用户名格式错误") private String username; @ApiModelProperty(value = "密码") @NotBlank(message="密码不能为空") @Pattern(regexp = "^[A-Za-z0-9]{6,20}$", message = "密码格式错误") private String password; }
学习到了如何使用正则表达式校验表单参数,如
@Pattern(regexp = "^[A-Za-z0-9]{6,20}$", message = "密码格式错误")
(2)tep2:修改用户服务实现类 UserServiceImpl 中的登录逻辑实现,实现根据用户账号查找用户,并进行用户的验证,主要代码如下:
@Override public long login(LoginForm form) { UserEntity user = baseMapper.selectOne( Wrappers.<UserEntity>lambdaQuery() .eq(UserEntity::getUsername, form.getUsername()) .last("limit 1") ); Assert.isNull(user, "账号或密码错误"); //密码错误 if(!user.getPassword().equals(DigestUtils.sha256Hex(form.getPassword()))){ throw new RRException("账号或密码错误"); } return user.getUserId(); }
(3)一边看视频学习,一边配套查找资料思考,可以收获到更多的知识点。
学习到了使用Mybabis-Plus中通过继承框架中服务类提供的默认实现的方法,实现单表操作,不需要再像原来使用Mybabis一样每个和数据库交互的查询、修改等操作都需要通过xml配置文件自定义编写SQL来实现,从而提升了尅发效率;
和视频里面的queryWrapper方式相比,这里额外关联学习了使用lambdaQuery的用法。