day03

3-1 你们的项目是如何进行参数校验的 

我们在之前的项目中不光靠前端进行校验数据,在后端也使用了Spring中的Validation进行校验;

Validation是一套基于注解的权限校验框架

  1. 创建验证规则:

    创建一个 Java 类来表示需要验证的数据对象,并在该类中使用注解来定义验证规则。例如,可以使用 @NotNull@Size@Pattern 等注解来定义字段的验证规则。
  2. 执行验证:

    在需要验证数据的地方,如控制器方法中,使用 Spring 提供的 Validator 接口进行数据验证。可以使用 Validator 接口的实现类如 LocalValidatorFactoryBean 来执行验证。
  3. 处理验证结果:

    在验证完成后,可以获取验证结果并根据需要进行处理。验证结果通常包含验证错误的详细信息,可以根据这些信息来进行相应的处理,比如返回错误信息给用户或者进行其他业务逻辑处理。

以下是一个简单的示例代码,演示了 Spring Validation 的基本使用方式:


@RestController
public class UserController {

    @Autowired
    private Validator validator;

    @PostMapping("/users")
    public ResponseEntity<String> createUser(@Valid @RequestBody User user) {
        Set<ConstraintViolation<User>> violations = validator.validate(user);
        if (!violations.isEmpty()) {
            // 处理验证错误
            // 返回错误信息给用户
            return ResponseEntity.badRequest().body("Validation failed: " + violations.toString());
        } else {
            // 保存用户数据
            // 返回成功信息
            return ResponseEntity.ok("User created successfully");
        }
    }
}

在上面的示例中,@Valid 注解用于触发数据验证,validator.validate(user) 用于执行验证,然后根据验证结果进行相应的处理。


3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么

用到了三张表,分别是问题表,回答表,用户表

问题表中的主要字段包括:课程id,章id,节id,标题,描述,是否匿名,最新回答的id,回答数量,提交问题用户的id,问题是都被隐藏,问题状态;

回答表中的主要字段包括:回答内容,用户id,问题id,是否匿名,点赞数量,评论数量,回答id,目标用户id,目标评论id;

用户表中的主要字段包括:用户id,用户头像,用户昵称;

用户和问题表关系为一对多,问题表和回答表为一对多,用户表和回答表为一对多。


3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论

1.MongoDB使用基于 JavaScript 的查询语言,可以执行复杂的查询和聚合操作。

2.MongoDB可以存储海量数据。

3.问题和评论通常价值不高,存到MySQl中比较浪费资源。

4.问题和评论可能具有不同的字段,使用 MongoDB 可以更灵活地存储这些数据。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值