部门新增功能

部门新增功能

2026年5月21日·#后端基础SpringBoot/MyBatis/Java/JSON/RequestBody·507 字 3 分钟
浏览量加载中...
AI 摘要

SpringBoot 实现部门新增功能,含JSON参数接收与@RequestBody注解使用

部门新增功能#

定义#

部门新增功能用于保存新的部门数据。前端以 JSON 格式传递部门名称,后端通过 @RequestBody 注解将 JSON 数据绑定到实体对象,完成数据持久化。

接口描述#

  • 请求方式:POST
  • 请求路径:/depts
  • 请求参数:JSON 格式 {"name":"研发部"}
  • 响应数据:Result(统一响应结果)

实现思路#

新增部门三层架构

  • Controller 层:接收前端 JSON 请求参数,调用 Service 保存部门
  • Service 层:补全基础属性(创建时间、修改时间),调用 Mapper 保存
  • Mapper 层:执行 INSERT SQL 语句

JSON 参数接收#

前端传递 JSON 格式参数时,使用实体对象接收。

规则:JSON 数据的键名与方法形参对象的属性名相同,并使用 @RequestBody 注解标识。

JSON参数接收

如上图,JSON {"name":"研发部"} 通过 @RequestBody 绑定到 Dept 对象的 name 属性。

代码实现#

Controller 层#

@PostMapping("/depts")
public Result save(@RequestBody Dept dept) {
System.out.println("新增部门, dept=" + dept);
deptService.save(dept);
return Result.success();
}

Service 层#

// DeptService 接口
void save(Dept dept);
// DeptServiceImpl 实现
public void save(Dept dept) {
// 补全基础属性
dept.setCreateTime(LocalDateTime.now());
dept.setUpdateTime(LocalDateTime.now());
// 保存部门
deptMapper.insert(dept);
}

Service 层负责补全 createTimeupdateTime 等非前端传入的基础属性。

Mapper 层#

@Insert("insert into dept(name, create_time, update_time) values(#{name}, #{createTime}, #{updateTime})")
void insert(Dept dept);

在 Mapper 接口中传递多个参数时,封装到一个对象中。SQL 中 #{...} 内写的是对象的属性名,不是表的字段名。

常见场景#

  • 表单提交新增记录,前端发送 JSON 请求体
  • 批量导入时循环调用新增接口

注意事项#

  • @RequestBody 注解必须加在 Controller 方法形参前,否则无法绑定 JSON
  • JSON 的 key 必须与实体类属性名一致
  • #{...} 中应填写 Java 对象的属性名(驼峰命名),而非数据库字段名
  • Service 层负责补全非业务字段(如时间戳),保持 Controller 层简洁

相关链接#

最后更新于 2026-05-21,距今已过 88 天

部分内容可能已过时

评论区

[ 标签 ]
# AI5# AI 编程2# AI工具1# Ajax2# Apifox1# AstrBot2# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# CloudFlare2# Cloudflare1# CloudFlare-ImgBed1# coc3# CSS6# DeepSeek2# deepseek2# DELETE1# Docker1# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML6# HTTP2# Java23# java13# JavaScript5# JDBC3# JSON1# JUnit1# Logback1# Maven6# Mybatis1# MyBatis4# MySQL6# MySql1# NapCat1# Obsidian3# OpenCode3# ORM1# PathVariable1# PicGo1# py2# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot11# SQL2# Svelte2# TailwindCSS1# Telegram2# Tlias2# Vercel1# Vue7# Waline3# WebDAV1# Web基础6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档9# 写作1# 刷步数1# 前端32# 动态1# 动漫1# 单词2# 博客6# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 图床4# 地图1# 备份1# 奇思妙想1# 存储1# 学习方法1# 宝塔面板3# 宝宝9# 导航栏1# 工具2# 开发1# 开发规范1# 开心1# 影视1# 微信1# 性能优化2# 总结1# 想法7# 感悟9# 指南1# 插件3# 故障排除1# 效率工具2# 教程7# 数据库10# 斩神1# 日常60# 日志框架1# 朋友圈1# 朱元璋1# 模板1# 测试1# 游戏1# 生活迁移1# 电影2# 碎碎念1# 视觉识别1# 网络教室1# 羊毛1# 脚本1# 脚本工具1# 自动化2# 蓝奏云1# 订阅推荐1# 记录1# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载1# 运动1# 部落冲突1# 配置1# 随机图1# 音乐3# 音标1# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]
工具