当前位置: 首页 > news >正文

Spring Boot 笔记 012 创建接口_添加文章分类

1.1.1 实体类添加校验

package com.geji.pojo;import jakarta.validation.constraints.NotEmpty;
import lombok.Data;import java.time.LocalDateTime;@Data
public class Category {private Integer id;//主键ID@NotEmptyprivate String categoryName;//分类名称@NotEmptyprivate String categoryAlias;//分类别名private Integer createUser;//创建人IDprivate LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}

1.1.2 Controller

package com.geji.controller;import com.geji.pojo.Category;
import com.geji.pojo.Result;
import com.geji.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/category")
public class CategoryController {@Autowiredprivate CategoryService categoryService;@PostMappingpublic Result add(@RequestBody @Validated Category category) {categoryService.add(category);return Result.success();}
}

1.1.3 Service

package com.geji.service;import com.geji.pojo.Category;public interface CategoryService {void add(Category category);
}

1.1.4 ServiceImpl

package com.geji.service.impl;import com.geji.mapper.CategoryMapper;
import com.geji.pojo.Category;
import com.geji.service.CategoryService;
import com.geji.utils.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.Map;@Service
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Overridepublic void add(Category category) {//补充属性值category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());Map<String,Object> map = ThreadLocalUtil.get();Integer userId = (Integer) map.get("id");category.setCreateUser(userId);categoryMapper.add(category);}
}

1.1.5 mapper

package com.geji.mapper;import com.geji.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;@Mapper
public interface UserMapper {//根据用户名查询用户@Select("select * from user where username=#{username}")User findByUserName(String username);//添加@Insert("insert into user(username,password,create_time,update_time)" +" values(#{username},#{password},now(),now())")void add(String username, String password);@Update("update user set nickname=#{nickname},email=#{email},update_time=#{updateTime} where id=#{id}")void update(User user);@Update("update user set user_pic=#{avatarUrl},update_time=now() where id=#{id}")void updateAvatar(String avatarUrl,Integer id);@Update("update user set password=#{md5String},update_time=now() where id=#{id}")void updatePwd(String md5String, Integer id);
}

1.1.6 测试

相关文章:

  • VueCLI核心知识3:全局事件总线、消息订阅与发布
  • pytorch神经网络入门代码
  • 最优字符串分隔符:零宽度空格和字符
  • 从宏观到微观——泽攸科技ZEM系列台式扫描电子显微镜在岩石分析中的应用
  • SpringBoot常见问题
  • firewall防火墙配置实战
  • 宝塔nginx配置SpringBoot服务集群代理
  • 【教程】autojs使用Intent打开相机拍照并指定存储路径
  • virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”
  • element 表单提交图片(表单上传图片)
  • 扫盲:什么是webGPU,和webGL对比哪些优点?
  • Java——Stream流的学习
  • 分享一个学英语的网站
  • 若依不分离版本部署流程
  • 【工作记录】基于docker+mysql部署单机版nacos2.0.4@20240219
  • (三)从jvm层面了解线程的启动和停止
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2017前端实习生面试总结
  • 30秒的PHP代码片段(1)数组 - Array
  • Android Volley源码解析
  • centos安装java运行环境jdk+tomcat
  • eclipse的离线汉化
  • HTTP中GET与POST的区别 99%的错误认识
  • js递归,无限分级树形折叠菜单
  • 闭包--闭包作用之保存(一)
  • 对象引论
  • 基于web的全景—— Pannellum小试
  • 基于遗传算法的优化问题求解
  • 力扣(LeetCode)965
  • 前端性能优化--懒加载和预加载
  • 王永庆:技术创新改变教育未来
  • 正则学习笔记
  • scrapy中间件源码分析及常用中间件大全
  • ​ArcGIS Pro 如何批量删除字段
  • ​比特币大跌的 2 个原因
  • ​批处理文件中的errorlevel用法
  • # Java NIO(一)FileChannel
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #13 yum、编译安装与sed命令的使用
  • #162 (Div. 2)
  • #FPGA(基础知识)
  • #HarmonyOS:Web组件的使用
  • (02)vite环境变量配置
  • (06)金属布线——为半导体注入生命的连接
  • (1) caustics\
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (ibm)Java 语言的 XPath API
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (九)c52学习之旅-定时器
  • (力扣)循环队列的实现与详解(C语言)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)SpringBoot3---尚硅谷总结
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET 表达式计算:Expression Evaluator