尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Restful风格请求响应和数据库封装映射
目录一、Restful风格的请求二、Apifox软件三、定义响应数据统一格式的java实体类四、后端接收路径指定请求方式五、从请求中接收简单参数RequestParam六、请求体中接收参数RequestBody七、请求路径中接收简单参数PathVariable八、公共路径抽取 RequestMapping共有路径九、实体类和数据库字段的封装映射一、Restful风格的请求根据请求方式描述操作更加的规范统一容易维护Restful风格URL请求方式含义http://localhost:8080/user/1GET查询ID为1的用户http://localhost:8080/user/1DELETE删除ID为1的用户http://localhost:8080/userPOST新增用户http://localhost:8080/userPUT修改用户二、Apifox软件Restful风格的请求浏览器地址栏只支持发出 GET 请求。其他请求方式就要借助第三方软件Apifox软件模拟前端向后端发送的不同方式的请求。1、新建HTTP接口2、选择请求方式和请求地址点击发送即可模拟前端发送的请求。三、定义响应数据统一格式的java实体类实体类Result包含成员1、Integer code响应代码1成功0失败2、String msg返回信息3、Object data响应的数据包含静态成员方法1、Result success()操作成功响应无数据2、Result success(Object object)操作成功响应带数据传入数据data属性中。3、Result error(String msg)操作失败响应传入错误信息。四、后端接收路径指定请求方式1、不限定请求方式RequestMappingRequestMapping(/users) ***此注释表示不限定请求方式*** public Result list(){ System.out.println(查询全部用户数据); Listuser userList userService.findAll(); return Result.success(userList); }2、限定请求方式GET方式1RequestMapping(value /usersmethod RequestMethod.GET)方式2GetMapping(/users) --------SpringBoot提供的注解推荐简洁POSTPostMapping(users)DELETEDeleteMapping(/user/1)PUTPutMapping(/user)五、从请求中接收简单参数RequestParam场景删除id为5的用户数据请求方式DELETEurl/users?id5方式一原始繁琐基于HttpServletRequest 获取请求参数DeleteMapping(/users) public Result deleteById(HttpServletRequest request) { String idStr request.getParameter(id); //通过对象中获取键为id的值获取到字符串类型id。 int id Integer.parseInt(idStr); //字符串转化为int类型方便后续操作 后续操作略---- return Result.success(); //删除不需带数据返回。 }方式二推荐)Spring提供的RequestParam()注解DeleteMapping(/users) public Result deleteById(RequestParam(id) Integer userId) { 操作略---- return Result.success(); //删除不需带数据返回。 }注意一旦声明了RequestParam注解该参数在请求时必须传递如果不传递将会报错。解决此问题要修改该注解内参数修改过后不传参数id将会是nullpublic Result deleteById(RequestParam(value id,required false) Integer userId)方式三推荐如果请求参数名与形参变量名相同直接定义方法形参即可接收省略RequestParam注解DeleteMapping(/users) public Result deleteById(Integer id) { 操作略---- return Result.success(); //删除不需带数据返回。 }六、请求体中接收参数RequestBody场景接收JSON格式的请求参数用于新增用户请求方式POSTurl/users前提JSON数据的键名与方法形参对象的属性名相同并需要使用RequestBody注解标识请求体JSON{ name: 张三, age: 19 }实体类Data //lombok提供get set方法 AllArgsConstructor //lombok提供全参构造 NoArgsConstructor //lombok提供无参构造 public class User { private String name; private Integer age; }请求处理类Requestbody使用PostMapping(/users) public Result add(RequestBody User user) { userService.add(user); //service层传入对象进行添加。 return Result.success(); }七、请求路径中接收简单参数PathVariable场景根据前端请求携带的路径参数ID查询回显请求方式GETurl/users/1请求处理类: PathVariable注解获取路径中id的值赋值给形参userIdGetMapping(/users/{id}) public Result getInfo(PathVariable(id) Integer userId) { User user userService.getInfo(userId); return Result.success(user); }如果形参的名字跟请求路径参数的名字一致就可以省略PathVariable注解的值GetMapping(/users/{id}) public Result getInfo(PathVariable Integer id) { User user userService.getInfo(id); return Result.success(user); }多个路径参数GetMapping(/users/{id}/{name}) public Result getInfo(PathVariable Integer id,PathVariable String name) { User user userService.getInfo(id); return Result.success(user); }八、公共路径抽取 RequestMapping共有路径场景多个接收类都包含同样的路径/users就可以抽取公共路径1、GetMapping/users获取全部成员信息。走URL2、GetMapping/users/{id}获取指定id的成员信息。走URL3、DeleteMapping/users删除成员信息。走URL4、PostMapping/users新增成员信息。走请求体5、PutMapping/users修改成员信息。走请求体请求处理类上添加RequestMapping注解RequestMapping(/users) //抽取公共路径/users RestController public class UserController{ GetMapping //省略路径 public Result findAll() { 获取成员列表 } PutMapping //省略路径 public Result updateById(RequestBody User user) { 修改成员信息 } GetMapping(/{id}) //省略公共路径包含独有路径 public Result GetInfo(PathVariable Integer id) { 根据路径参数查询回显成员信息 } }九、实体类和数据库字段的封装映射1、自动映射前提实体类属性名和数据库表的字段名一致MyBatis会自动封装。2、如果字段名与实体类属性名不一致以下是解决方案数据库字段create_time、update_time。实体类成员createTime、updateTime。方式一Mapper层中使用Results和Result注解进行手动映射Results({ Result(column create_time,property createTime), Result(column update_time,property updateTime) }) Select(select * from users) //查询users表中所有字段。 public ListUser findAll(); //返回给一个List集合。方式二Mapper层sql语句中给数据库中字段起别名Select(select id,name,create_time createTime,update_time updateTime from users) public ListUser findAll();方式三推荐如果字段名与属性名符合驼峰命名规则使用Mybatis开启驼峰命名映射yml配置文件写入以下映射要求xxx_Abc xxxAbcmybatis configuration map-underscore-to-camel-case: true //此行表示开启驼峰命名映射
RELATED

相关推荐

【深度学习毕设选题】基于深度学习的眼部目标检测研究,基于YOLO算法的眼睑信息自动测量方法研究

【深度学习毕设选题】基于深度学习的眼部目标检测研究,基于YOLO算法的眼睑信息自动测量方法研究

💖💖作者:IT跃迁谷毕设展 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数…

📅 2026/11/3 10:46:59
memory __get_fault_gfp_mask

memory __get_fault_gfp_mask

__get_fault_gfp_mask 是一个缺页异常处理路径中的辅助函数,用于为当前触发的缺页异常确定合适的内存分配标志(GFP flags)。它的核心逻辑是:如果 VMA 关联了文件,则使用该文件映射的 GFP 掩码;否则&#xf…

📅 2026/11/3 10:46:59
执行力贬值之后:奥特曼访谈折射的3条能力增长路线与1个底层支撑

执行力贬值之后:奥特曼访谈折射的3条能力增长路线与1个底层支撑

【摘要】基于OpenAI CEO山姆奥特曼45分钟访谈核心观点,拆解AI时代个体能力价值迁移逻辑,提炼3条核心增长路线与1项底层支撑能力,澄清3类普遍认知误区,给出1套可复用自测框架,为知识工作者重构竞争力提供可落地的行动路…

📅 2026/11/3 10:46:59
MORE NEWS

更多资讯

📰

Linux旧版刻录套件兼容与授权合规:开源替代实操指南

1. 先把问题看透:搜“序列号”的人,真正卡住的到底是什么我平时帮人处理桌面运维问题,碰到最多的一类需求,就是“旧版刻录套件怎么在 Linux 上跑起来”。搜索框里输入的关键词五花八门,核心无非是“nero linux4 序列号…

📰

三大模型实测:用Three.js写3D跑酷游戏,谁更强?

最近我干了一件挺能折腾的事:让 Step 5 Preview、DeepSeek V4 Pro、GLM5.3 三个模型,用同一个需求说明,各写一个 3D 游戏。对,你没看错,是 3D 游戏,不是待办事项 App,也不是静态网页。选这个题目…

📰

CVE-2012-0553修复指南:识别并替换数据库内嵌yaSSL

这类老漏洞最容易踩的坑不是“不会修”,而是“以为自己已经修了”。我见过不止一个机房,扫描报告上挂着CVE-2012-0553的红字,运维第一反应是打系统补丁,结果补丁列表里翻半天找不到这个东西——因为它根本不在操作系统的软件仓库里…

📰

虚拟电厂技术:解决高比例可再生能源并网挑战

1. 高比例可再生能源并网的核心挑战 在能源转型的大背景下,可再生能源在电力系统中的占比不断提升。以德国为例,2022年可再生能源发电量占比已达到46%,中国也设定了2030年非化石能源占比25%的目标。这种高比例可再生能源并网带来了两个关键挑…

📰

AI论文写作工具评测与学术润色技术解析

1. 论文写作痛点与AI解决方案 论文写作过程中,研究者常面临三大核心挑战:文献检索效率低下、语言表达不够专业、格式规范耗时费力。传统解决方案往往需要投入大量时间精力,而AI技术的引入正在彻底改变这一局面。 目前主流的AI论文工具主要分…

📰

网络安全证书指南:从基础到实战部署

1. 为什么你需要这份网络安全证书指南? 在数字化浪潮席卷全球的今天,网络安全已经成为每个互联网用户必须面对的现实问题。我清楚地记得2017年那个令人震惊的Equifax数据泄露事件,1.43亿用户的敏感信息被曝光,直接导致公司股价暴跌…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬