Springboot 简单登录注册

1、目录结构

2、编码实现

      对于登录操作,是根据用户所输入的信息(账号、密码等)来判断账号是否存在或者输入的信息是否正确,从而执行登录成功或者失败的操作。

     对于简单注册操作,根据用户输入的信息通过系统访问数据库来进行插入用户信息,以此来完成注册操作。

     首先对于mapper.xml文件的编写,在这里进行编写sql语句

 mapper接口

     按照我的理解,其实是dao层,来达到访问数据库的目的,代码如下所示。



@Component
@Mapper
public interface BasicUserMapper extends BaseMapper<BasicUser> {


    BasicUser SelectOneUser(@Param(value = "account") String account,@Param(value = "password") String password );

    Integer InsertOneUser(BasicUser basicUser);


}

     需要注意:

  •  namespace="com.example.springbootdemo.service.mapper.BasicUserMapper"。 namespace称作命名空间,作用是保证不同的映射文件(*mapper.xml)sql语句的id相同也不会有冲突。
  • 像id="SelectOneUser"所表示的id是唯一性的,而mapper.xml文件中的id需要和**mapper.interface(mapper接口)文件中的方法名保持一致,因为系统会根据方法名去mapper.xml中寻找id 。举例  mapper接口文件中 方法名为SelectOneUser那么就会映射到mapper.xml中  id="SelectOneUser "

M(Model)

   存放实体类,如下所示:


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("basic_user")
@ApiModel(value="BasicUser对象")
public class BasicUser {

    private static final long serialVersionUID = 1L;

    @TableId
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    @ApiModelProperty(value = "用户姓名")
    private String userName;

    @ApiModelProperty(value = "用户账号")
    private String account;

    @ApiModelProperty(value = "用户密码")
    private String password;

    @ApiModelProperty(value = "用户角色")
    private Integer role;

    @ApiModelProperty(value = "用户状态")
    private Integer status;
}

Service

    业务逻辑层,主要是针对具体的问题操作,做业务处理操作。我们就可以根据自己的需求去调用mapper接口中的方法,以此来达到我们的目的。代码如下所示:

public interface BasicUserService {
    
    //条件查询
    BasicUser SelectOneUser(String account , String password);
    /**
     向数据库中插入一条用户数据
     */
    Integer InsertOneUser(BasicUser basicUser);


}

@Repository
public class BasicUserServiceImpl implements BasicUserService {

    @Autowired
    BasicUserMapper basicUserMapper;

    @Override
    public BasicUser SelectOneUser(String account, String password) {
        return basicUserMapper.SelectOneUser(account,password);
    }

    public  Integer InsertOneUser(BasicUser basicUser)
    {
        return basicUserMapper.InsertOneUser(basicUser);
    }

}

C(Controller)

    控制器,通过service的接口来控制业务流程,也可以接受前端传过来的参数进行业务操作。代码如下所示:

@RestController
@CrossOrigin
@Api(tags = "用户信息Controller")
@RequestMapping("/api/UserWebController")
@Transactional
public class UserWebController {
    @Autowired(required = false)
    BasicUserService basicUserService;
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    @ApiOperation("01用户登录接口")
    public CommonResult login(@RequestBody LoginDto dto) {
        CommonResult apiResult = new CommonResult();
        try{
            // 获取符合条件的用户
            BasicUser user = basicUserService.SelectOneUser(dto.getAccount(),dto.getPassword());
            if(user != null){
                    LoginSuccessDto loginSuccessDto = new LoginSuccessDto(user.getRole(),user.getUserName());
                       apiResult = CommonResult.ok(loginSuccessDto);
            }else{
                apiResult = CommonResult.failed("账号或密码错误");
            }
        }catch (Exception e){

            apiResult = CommonResult.failed(e.getMessage());
        }
        return apiResult;
    }
    @RequestMapping(value = "/register", method = RequestMethod.POST)
    @ApiOperation("02用户注册接口")
    public CommonResult register(@RequestBody BasicUser basicUser) {
        CommonResult apiResult = new CommonResult();
        try{

            basicUser.setUserId(1L);
            if(basicUserService.InsertOneUser(basicUser)>0)
                apiResult = CommonResult.ok();
            else
                apiResult = CommonResult.failed("注册失败");

        }catch (Exception e){

            apiResult = CommonResult.failed(e.getMessage());
        }
        return apiResult;

    }
}

 总结(最简单的流程):

  • 当我们前端发送请求之后,会传送数据到controller(C)层,紧接着在(C)层就会调用service中的服务。
  • 而在service中,就会调用mapper接口传输数据。
  • mapper接口会通过mapper.xml访问数据库,从而返回数据到service
  • 再次将数据返回到(C)层对返回的数据进行处理。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值