本文最后更新于 2026年4月19日 上午
新建分类接口的实现
新建分类测试接口的需求
可以添加分类
代码实现
创建 AddCategoryDto 请求对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@Data @AllArgsConstructor @NoArgsConstructor @ApiModel(description = "添加分类请求对象") public class AddCategoryDto {
@ApiModelProperty(value = "分类名称", required = true, example = "技术分享") private String name; @ApiModelProperty(value = "分类描述", example = "技术相关的文章") private String description;
@ApiModelProperty(value = "排序值", example = "0") private Integer sort; @ApiModelProperty(value = "状态(0-正常,1-禁用)", required = true, example = "0") private String status; }
|
其他的照旧 下面是服务类的功能实现
很简单
1 2 3 4 5 6 7 8 9 10
| @Override public ResponseResult addCategory(AddCategoryDto addCategoryDto) { Category category = BeanCopyUtils.copyBean(addCategoryDto, Category.class); categoryService.save(category);
return ResponseResult.okResult(); }
|
然后要处理一下当数据库唯一键值重复时返回的报错信息
这是在测试新增分类时候发现的
如果新增的分类名重复了 后端会返回所有报错和调试信息给前端
其实如果重复 后端只需要传递明确的错误信息就行了 调试日志并不需要全部传递
下面是对 GlobalExceptionHandler 类的处理 新增 handleDuplicateKeyException 方法来 处理数据库唯一键值冲突 的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| @ExceptionHandler(DuplicateKeyException.class) public ResponseResult<Void> handleDuplicateKeyException(DuplicateKeyException e) { log.error("数据库唯一键冲突", e);
String errorMsg = e.getCause().getMessage(); String message = "数据已存在,请检查后重试";
if (errorMsg.contains("Duplicate entry")) { Pattern pattern = Pattern.compile("Duplicate entry '(.+?)' for key '(.+?)'"); Matcher matcher = pattern.matcher(errorMsg);
if (matcher.find()) { String duplicateValue = matcher.group(1); String keyName = matcher.group(2);
if (keyName.contains("uk_name") || keyName.contains("name")) { message = "名称 '" + duplicateValue + "' 已存在!"; } else if (keyName.contains("uk_username") || keyName.contains("username")) { message = "用户名 '" + duplicateValue + "' 已存在!"; } } }
return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR.getCode(), message); }
|
最后测试接口成功
PS:该系列只做为作者学习开发项目做的笔记用
不一定符合读者来学习,仅供参考
预告
后续会记录博客的开发过程
每次学习会做一份笔记来进行发表
“一花一世界,一叶一菩提”
版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/