springboot+vue3支付宝接口案例-第二节-准备后端数据接口
springboot+vue3支付宝接口案例-第二节-准备后端数据接口!今天经过2个小时的折腾。准备好了我们这次测试支付宝线上支付接口的后端业务数据接口。下面为大家分享一下,期间发生遇到了一些弯路。
首先,我们本次后端接口使用的持久层框架是JPA。这是一个较为传统的老掉牙的持久层技术了。但是,在配置测试接口过程中依然遇到了一些错误和弯路,给大家一一列举出来。
第一个要点:实体类的封装和映射配置。

如图所示,红色的区域,都是大家需要注意的地方。
顶部@Entity,是jpa框架官方要求的。这个东西,就是一个标记符号。告诉框架,我这个是一个数据对象。
第二个@Table()里面的name属性,要写好。我的数据库表名字是tb_goods。所以要写的正确才行。如果名字是goods。和实体类名字一样。name属性可以不写,默认的情况,就是表名和实体类名字一模一样。
第三个主键,要配置好参数。第一个参数,我特意查了一下资料,@javax.persistence.Id.这个注解,是jpa官方要求的东西。少不了它。少了就报错。
第四个,当你的数据库表的字段名字和实体类的属性名字不一样,要加上name属性。写清楚。
我用红色给大家圈出来了。

如图,我的表内字段名字是带下划线的。我的实体类属性名字是不带的。所以name属性就不能忽略了。
package com.example.demo.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {private Integer code;private String msg;private T data;}
其次,为了给前端传json对象时方便,我封装了一个方便业务传输的回传实体类。里面用了一个泛型参数。这样它就可以实现多方面的复用了。
package com.example.demo.controller;import com.example.demo.bean.Goods;
import com.example.demo.bean.Result;
import com.example.demo.service.IGoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RestController
@RequestMapping("/goods")
public class GoodsController {@Autowiredprivate IGoodsService goodsService;@GetMapping("/alllist")public Result<List<Goods>> getAllGodds(){Result<List<Goods>> result = new Result<List<Goods>>();List<Goods> allGoodsList = goodsService.getAllGoos();if(allGoodsList.size()>0){result.setCode(200);result.setMsg("查询产品信息列表成功");result.setData(allGoodsList);return result;}else{result.setCode(400);result.setMsg("查询失败,请稍后再试");return result;}}
}
这个是控制器的代码,里面写了一个获取产品列表的接口。毕竟简单。不多介绍了。
package com.example.demo.service;import com.example.demo.bean.Goods;import java.util.ArrayList;
import java.util.List;public interface IGoodsService {//获取所有的产品public List<Goods> getAllGoos();//根据id查询某一个产品信息public Goods getOneGoodsById(Integer id);//删除指定id的产品public void deleteOneGoodsById(Integer id);//更新指定id的产品public void updateOneGoodsById(Integer id);//新增一个产品public void addOneGoods(Goods goods);}
这个是产品对象的业务层的接口代码。
package com.example.demo.service.impl;import com.example.demo.bean.Goods;
import com.example.demo.mapper.GoodsMapper;
import com.example.demo.service.IGoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;
@Service
public class GoodsService implements IGoodsService {@Autowiredprivate GoodsMapper goodsMapper;@Overridepublic List<Goods> getAllGoos() {return goodsMapper.findAll();}@Overridepublic Goods getOneGoodsById(Integer id) {return null;}@Overridepublic void deleteOneGoodsById(Integer id) {}@Overridepublic void updateOneGoodsById(Integer id) {}@Overridepublic void addOneGoods(Goods goods) {}
}
这个是产品的业务层的实现类的代码。里面用了一个注入。注入一个来自持久层的对象。
package com.example.demo.mapper;import com.example.demo.bean.Goods;
import org.springframework.data.jpa.repository.JpaRepository;public interface GoodsMapper extends JpaRepository<Goods,Integer> {
}
持久层代码,因为我们这次不涉及到特别复杂的业务逻辑,就是简单的展示。所以,仅需继承框架本身的接口就行了。框架本身会提供一些基础的方法供给我们使用的。

如图,是postman接口调试软件里测试接口调用反馈数据成功了。说明我的数据库查询,反馈给前端页面的json格式的数据类型。成功了。
下一个小节,我们分享一下,vue3前端的页面代码。
相关文章:
springboot+vue3支付宝接口案例-第二节-准备后端数据接口
springbootvue3支付宝接口案例-第二节-准备后端数据接口!今天经过2个小时的折腾。准备好了我们这次测试支付宝线上支付接口的后端业务数据接口。下面为大家分享一下,期间发生遇到了一些弯路。 首先,我们本次后端接口使用的持久层框架是JPA。这…...
贪吃蛇游戏设计文档(基于C语言)
1. 引言 本设计文档旨在详细阐述一款2D贪吃蛇游戏的设计思路、功能模块划分以及具体实现要点。通过严谨的需求分析与清晰的架构设计,确保游戏开发过程有序进行,并最终打造出一款用户友好、稳定流畅的经典贪吃蛇游戏。 2. 需求分析 2.1 核心元素 - 蛇&…...
在Windows上安装与配置Apache服务并结合内网穿透工具实现公网远程访问本地内网服务
文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…...
幻兽帕鲁服务器出租,腾讯云PK阿里云怎么收费?
幻兽帕鲁服务器价格多少钱?4核16G服务器Palworld官方推荐配置,阿里云4核16G服务器32元1个月、96元3个月,腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G3…...
day05休息,day06 有效的字母异位词、两个数组的交集、快乐数、两数之和
题目链接:有效的字母异位词、两个数组的交集、快乐数、两数之和 有效的字母异位词 时间复杂度: O(n) 空间复杂度: O(S), S为字符集大小,这里为26 Go func isAnagram(s string, t string) bool {// s和t的长度一定是相等的if len(s) ! len(t) {return…...
star原则
"STAR" 原则通常用于回答面试或描述工作经验等场景中,以清晰、有条理地传达信息。"STAR" 是 Situation(情境)、Task(任务)、Action(行动)、Result(结果…...
蓝桥杯---九数组分数
1,2,3 ... 9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码。 注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。 代码 public class _05九数组分数 {public static void test(int[] x){int a …...
将 Amazon Bedrock 与 Elasticsearch 和 Langchain 结合使用
Amazon Bedrock 是一项完全托管的服务,通过单一 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先 AI 公司的高性能基础模型 (FMs) 选择,以及广泛的 构建生成式 AI 应用程序所需的功能,简化开发,…...
###C语言程序设计-----C语言学习(6)#
前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 一. 主干知识的学习 1. while语句 除了for语句以外,while语句也用于实现循环,而且它…...
Hadoop3.x源码解析
文章目录 一、RPC通信原理解析1、概要2、代码demo 二、NameNode启动源码解析1、概述2、启动9870端口服务3、加载镜像文件和编辑日志4、初始化NN的RPC服务端5、NN启动资源检查6、NN对心跳超时判断7、安全模式 三、DataNode启动源码解析1、概述2、初始化DataXceiverServer3、初始…...
基于vue实现待办清单案例
一、需求 新增内容; 删除内容; 统计操作; 清空数据。 示例图: 二、代码演示 1、基础准备 index.css代码 html, body {margin: 0;padding: 0; } body {background: #fff ; } button {margin: 0;padding: 0;border: 0;backgr…...
应急响应-流量分析
在应急响应中,有时需要用到流量分析工具,。当需要看到内部流量的具体情况时,就需要我们对网络通信进行抓包,并对数据包进行过滤分析,最常用的工具是Wireshark。 Wireshark是一个网络封包分析软件。网络封包分析软件的…...
计算机网络·网络层
网络层 网络层提供的两种服务 争论: 网络层应该向运输层提供怎样的服务?面向连接还是无连接? 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 2 种观点: 面向连接的可靠交付。 无连…...
2024/1/28周报
文章目录 摘要Abstract文献阅读题目引言方法The ARIMA modelTime delay neural network (TDNN) modelLSTM and DLSTM model 评估准则实验数据描述实验结果 深度学习AttentionAttention思想公式步骤 Attention代码实现注意力机制seq2seq解码器Model验证 总结 摘要 本周阅读了一…...
Vue3中的ref和shallowRef、reactive和shallowReactive
一:ref、reactive简介 ref和reactive是Vue3中定义响应式数据的一种方式。ref通常用来定义基础类型数据。reactive通常用来定义复杂类型数据。 二、shallowRef、shallowReactive简介 shallowRef和shallowReactive是Vue3中定义浅层次响应式数据的方式 三、Api使用对比…...
go包与依赖管理
包(package) 包介绍 Go语言中支持模块化的开发理念,在Go语言中使用包(package)来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件(.go结尾的文件)组成,是一种高级的代码…...
C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态
一、写入文本文件 文本文件一般以行的形式组织数据。 包含头文件:#include <fstream> 类:ofstream(output file stream) ofstream 打开文件的模式(方式):类内open()成员函数参数2.参数1是…...
nginx部署前端(vue)项目及配置修改
目录 一、前端应用打包 二、部署前端应用 1、上传前端文件夹 2、修改nginx配置文件 3、重启nginx 三、查看效果 nginx安装参考:linux安装nginx-CSDN博客 一、前端应用打包 打包命令 npm run build 打包成功如下,会在项目路径下生成dist文件夹 二…...
FreeRTOS
1.新建一个无FreeRTOS的工程,取名为Motor,根据风扇模块PDF原理图和操作文档让风扇转动 2.新建一个包含FreeRTOS的工程,取名为Semaphore 具体步骤:创建两个任务和一个共享资源,在两个任务中使用信号量来同时访问共享资源…...
windows 10/11 home左键点击开始菜单无反应
用户电脑点开始没反应,用户配置文件出错。 用户电脑是home版 windows hello指纹设置不了,其实是不能使用默认帐号administrator。 使用windowspe启用administrator用户,重启使用administrator删除出错用户。 直接使用administrator用户windows hello…...
【AI黑话日日新】什么是大语言模型驱动的代码生成技术?
摘要 生成式人工智能的快速普及,重塑了传统软件开发的全链路流程。大语言模型(LLM)凭借海量语料预训练与深度语义理解能力,成为智能代码生成的核心底座。这项技术打通了自然语言与编程语言的语义壁垒,能够实现代码续写、需求转源码、自动化测试、系统重构等多元化能力,帮…...
C# 工业级温度监控软件:支持多PLC通信与实时曲线绘制
前言工业自动化领域,温度监控是保障生产安全与产品质量的核心环节。面对多台设备分散、数据孤岛严重的现状,开发一套高效、可视化的上位机系统显得尤为重要。本文将详细介绍一款基于 WinForms 与 S7.Net 开发的温度监控系统。该系统不仅实现了对多台西门…...
LangChain实战:从零构建一个联网搜索增强的RAG问答系统
1. 为什么需要联网搜索增强的RAG系统 传统的RAG(检索增强生成)系统有个致命伤——它只能回答知识库里已有的内容。想象一下,你去年精心构建了一个旅游推荐系统,但今年新开的网红景点它完全不知道,因为数据没更新。这就…...
One-API终极部署实战:从零构建企业级AI接口分发平台
One-API终极部署实战:从零构建企业级AI接口分发平台 【免费下载链接】one-api OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问以及 360 智脑,可用于…...
Minikube国内环境配置全攻略:从安装到Dashboard镜像加速(含阿里云镜像源)
Minikube国内环境高效配置指南:从零搭建到Dashboard可视化 对于国内开发者而言,在本地环境中快速搭建Kubernetes学习平台往往面临镜像拉取缓慢甚至失败的困扰。本文将系统性地介绍如何利用Minikube在国内网络环境下构建稳定的单机Kubernetes环境…...
LiuJuan Z-Image Generator快速上手:生成图批量后处理(锐化/降噪/色彩校正)集成
LiuJuan Z-Image Generator快速上手:生成图批量后处理(锐化/降噪/色彩校正)集成 1. 引言:从生成到精修,一步到位 你用过AI生成图片吗?是不是经常遇到这样的问题:好不容易生成了一张构图不错的…...
UI自动化测试--02(Xpath与CSS定位全攻略)
1.Xpath定位xpath和css定位可以利用以下元素的信息来完成定位: 层级结构 元素自身的所有信息 什么是Xpath: 是一种专门在xml文档中找元素的公式(表达式),而HTML刚好和XML结构很类似,所以XPATH的表达 式也可…...
用Matlab/Simulink手把手教你设计交错式升压DC-DC转换器(附PI参数整定代码)
从零构建交错式升压DC-DC转换器的MATLAB实战指南 交错式升压拓扑正在新能源领域掀起一场静默革命——当电动汽车的电池管理系统需要稳定升压时,当光伏逆变器要处理不稳定的直流输入时,这种能显著降低电流纹波的结构已成为工程师的秘密武器。但理论图纸与…...
数电技术实战解析04:CMOS门电路设计与优化
1. CMOS反相器:数字世界的开关艺术 第一次拆解CMOS反相器时,我被它的精妙设计震撼到了——就像家里电灯的双控开关,只不过这个"开关"的尺寸只有头发丝的万分之一。这个由PMOS和NMOS管组成的经典结构,构成了所有数字电路…...
OpenClaw省钱方案:自建Qwen3-VL:30B替代高价多模态API
OpenClaw省钱方案:自建Qwen3-VL:30B替代高价多模态API 1. 为什么选择自建多模态模型 去年我在开发一个智能内容分析系统时,每月在商用多模态API上的支出高达数千元。当我尝试用OpenClaw对接本地部署的Qwen3-VL:30B后,成本直接降到了原来的1…...
