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

Spring boot + mybatis-plus 遇到 数据库字段 创建不规范 大驼峰 下划线 导致前端传参数 后端收不到参数 解决方案

最近使用springboot 连接了一个 sqlserver 数据库
由于数据库年数久远 ,建表字段不规范 大驼峰 下划线的字段名都有

但是 java 中 Spring boot + mybatis-plus 又严格按照小驼峰 格式 生成实体类
如果不是小驼峰格式
@Data 注解
get set 方法
在前端请求参数
使用这个类 来接取前端的参数 发现 获取不到 实体类的值

而且 这个实体类打印出来 请求参数就没接收到

如果手动一个一个的来修改字段成 小驼峰 就很烦

经过摸索 找到了 偷懒的方案

在默认使用 mybatis-plus 自动生成实体类
生成的类文件
在这里插入图片描述
问题:
这种根据数据库字段生成的 大驼峰命名规范 或者不规则命名规范 使用这种类 来接收 前端请求的参数
发现接收不到 前端的参数

通过摸索 找到了一个注解
@JsonProperty(“SIsClose”)

@JsonProperty的作用

@JsonProperty是作用在实体类的属性上的,把属性的名称序列化另一个名称,属性名称和@JsonProperty(“”)里面的名称是映射关系。比如数据库使用下划线命名字段user_id,但是在实体类属性命名是驼峰式的userId,通过在userId上添加@JsonProperty(“user_id”),在进行数据库查询返回给客户端的时候,可以控制输出的字段。

 简单的说,就是在给实体类属性名起别名,应用在不同的场合。

最终 得到的实体类
在这里插入图片描述

但是这个注解 如果数据库字段过多
一个一个的加 这个注解 也会加的头疼

最后修改 mybatis-plus 的 自动生成实体类的模板
加了一个
在这里插入图片描述
这样 以后 自动生成 实体类
就会 自动帮我加上这个注解
这样就很方便了

经过测试

命名不规范
导致使用 该类接 前端参数 会取不到 相对应的 数据
但是
如果使用 java set方法手动给这个类中的某个命名不规范字段 赋值
使用 get方法 是可以获取的
比如 new 这个对象 然后 get set 完全可以使用

所以我感觉 应该是 springboot 在接收前端参数 必须使用 小驼峰 命名规范

所以为了解决 接收参数 问题 在字段上加上 @JsonProperty(“SIsClose”) 注解 即可

查阅资料后
请求参数的 body 形式

1.遵照Java Api规范,使用驼峰命名格式
2. java类的属性要符合代码规范,使用驼峰属性

springboot 默认使用的是 jackson 组件,只需在命名不规范的属性上加上相应的注解即可进行映射
jackson 组件 : com.fasterxml.jackson.annotation.JsonProperty;

注意:这种没加 @RequestBody 的形式,使用 @JsonProperty 注解是不起作用的

相关文章:

Spring boot + mybatis-plus 遇到 数据库字段 创建不规范 大驼峰 下划线 导致前端传参数 后端收不到参数 解决方案

最近使用springboot 连接了一个 sqlserver 数据库 由于数据库年数久远 ,建表字段不规范 大驼峰 下划线的字段名都有 但是 java 中 Spring boot mybatis-plus 又严格按照小驼峰 格式 生成实体类 如果不是小驼峰格式 Data 注解 get set 方法 在前端请求参数 使用这个…...

JavaScript String 字符串对象

文章目录JavaScript String 字符串对象JavaScript 字符串字符串(String)在字符串中查找字符串内容匹配替换内容字符串大小写转换字符串转为数组特殊字符字符串属性和方法JavaScript String 字符串对象 String 对象用于处理已有的字符块。 JavaScript 字…...

Lazada如何做好店铺运营?产品定价是关键

1.东南亚各国状况一览(对比中国) 2.东南亚消费水平真的很低? 精准定价的意义:定价过高,失去核心竞争力;定价过低,亏本对市场失去信心;价格改动,流量下降 定价公式&#…...

空口协议Eapol、802.11 Action、802.11 BAR 和 802.11BA、802.11 Encrypted Data讲解

如下报文 可以看到,除了有之前开放认证的报文之外,还多了 EAPOL 次握手的报文。另外,还有其他几种类型的报文:802.11 Action、802.11 BAR 和 802.11BA、802.11 Encrypted Data ​ 密匙认证协议EAPOL: EAP是Extensible Authentication Protocol的缩写,EAPOL就是(EAP…...

C++类和对象

目录 一、C类定义 二、定义C对象 三、访问数据成员 四、类和对象详解 C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处…...

Leetcode.面试题 05.02 二进制数转字符串

题目链接 面试题 05.02 二进制数转字符串 Mid 题目描述 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。…...

UDPTCP网络编程

udp编程接口 一个UDP程序的编写可以分为3步: 创建一个网络套接字: 它相当于文件操作时的文件描述符,是一个程序进行网络通讯的门户, 所有的网络操作都要基于它 绑定IP和端口: 需要为网络套接字填充IP和端口信息 但是…...

【微信小程序】-- 全局配置 -- tabBar(十七)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

Cortex-A7中断控制器GIC

Cortex-A7中断控制器GIC 中断号 芯片内部的中断都会引起IRQ InterruptGIC将所有的中断源(最多1020个中断ID)分为三类: SPI(SharedPeripheralInterrupt)共享中断,外部中断都属于SPI中断 [ID32-1019]PPI(PrivatePeripheralInterrupt)私有中断 [ID16-31]SGI(Software-…...

JavaSE:常用类

前言从现在开始进入高级部分的学习,鼓励自己一下!画个大饼: 常用类->集合框架->IO流->多线程->网络编程 ->注解与反射->GUI很重要的东西,不能不会!Object类祖宗类,主要方法:t…...

Element中树形控件在项目中的实际应用

文章目录1、使用目的2、官网组件3、组合使用组件案例4、在项目中实际应用4.1 组合组件的使用4.1.2 代码落地4.1.3 后台接口数据4.1.4 实际效果官网连接直达&#xff1a;Tree树形控件的使用 1、使用目的 用清晰的层级结构展示信息&#xff0c;可展开或折叠。 2、官网组件 <…...

kaggle RSNA 比赛过程总结

引言 算算时间&#xff0c;有差不多两年多没在打kaggle了&#xff0c;自20年最后一场后&#xff08;其实之前也就打过两场&#xff0c;一场打铁&#xff0c;一场表格赛是金是银不太记得&#xff0c;当时相当于刺激战场&#xff0c;过拟合lb大赛太刺激了&#xff0c;各种trick只…...

51单片机入门————LED灯的控制

LED的电路图通过原理图看出&#xff0c;LED灯是接单片机芯片的P20~P27的一共有8个LED&#xff0c;51单片机也是8字节的P20x010xFE————1111 1110P20xFE可以表示把在P2端的第一个灯点亮1 表示高电平0表示低电平当为0的时候形成一个完整回路&#xff0c;电流从高电平流向低电平…...

J - 二进制与、平方和(线段树 + 维护区间1的个数)

2023河南省赛组队训练赛&#xff08;二&#xff09; - Virtual Judge (vjudge.net) 请你维护一个长度为 n 的非负整数序列 a1, a2, ..., an&#xff0c;支持以下两种操作&#xff1a; 第一种操作会将序列 al, al  1, ..., ar 中的每个元素&#xff0c;修改为各自和 x…...

BertTokenizer的使用方法(超详细)

导入 from transformers import BertTokenizer from pytorch_pretrained import BertTokenizer以上两行代码都可以导入BerBertTokenizer,transformers是当下比较成熟的库&#xff0c;pytorch_pretrained是google提供的源码(功能不如transformers全面) 加载 tokenizer BertT…...

深度学习编译器CINN(3):编译过程中遇到的问题总结

目录 问题一:No module named XXXX 问题描述 分析与解决方案 问题二:catastrophic error: cannot open source file "float16.h"...

yum 安装mysql8数据全过程

mysql8安装方式&#xff1a;&#xff08;使用官方yum仓库&#xff09; 1. wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm 安装 yum install mysql80-community-release-el7-4.noarch.rpm 2、生成yum源缓存 每次当我们编写了&#xff0c…...

内网vCenter部署教程一

PS:因为交换机链路为trunk,安装先登录ESXI,将端口组改为管理vlan ID(1021) 一、双击镜像,打开文件夹,目录为F:\vcsa-ui-installer\win32,双击installer.exe 二、先设置语言为中文 三、点击下一步 四、选择需要安装esxi的主机。 五、设置Vcenter虚拟机的密码...

java 进阶—线程的常用方法

大家好&#xff0c;通过java进阶—多线程&#xff0c;我们知道的什么是进程&#xff0c;什么是线程&#xff0c;以及线程的三种创建方式的选择 今天&#xff0c;我们来看看线程的基础操作 start() 开启线程 public class Demo implements Runnable {Overridepublic void run…...

hadoop的运行模式

作者简介&#xff1a;大家好我是小唐同学(๑>؂<๑&#xff09;&#xff0c;好久不见&#xff0c;为梦想而努力的小唐又回来了&#xff0c;让我们一起加油&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小唐同学(๑>؂<๑&#xff09;的博客主页 目前…...

服务器(centos7.6)已经安装了宝塔面板,想在里面安装一个SVN工具(subversion),应该如何操作呢?

首先&#xff0c;在登录进入宝塔面板&#xff0c;然后点击左侧终端&#xff0c;进入终端界面&#xff0c;如下图&#xff1a;------------------------------------------如果是第一次使用会弹出输入服务器用户名和密码&#xff0c;此时输入root账号和密码&#xff0c;即可进入…...

从智能进化模型看用友BIP的AI平台化能力

随着人工成本的上升&#xff0c;智能和自动化技术的成熟&#xff0c;企业在越来越多的场景开始应用自动化技术来替代相对标准及有规则的工作&#xff0c;同时利用智能算法来优化复杂工作及决策&#xff0c;获得竞争优势。 不同于阅读、聊天、搜索等面向终端用户的应用场景&…...

项目管理的主要内容包括哪些?盘点好用的项目管理系统软件

阅读本文您将了解&#xff1a;1、项目管理的主要内容包括哪些2、好用的项目管理软件 项目管理是为了实施一个特定目标&#xff0c;所实施的一系列针对项目要素的管理过程&#xff0c;包括过程、手段以及技术等。 通过项目管理&#xff0c;我们能够提前安排和控制项目的时间、…...

Allegro如何查看PCB上器件的库路径操作指导

Allegro如何查看PCB上器件的库路径操作指导 在做PCB设计的时候,有时需要检查PCB上器件使用的库的路径是否正确,Allegro支持快速将PCB上所有器件的库路径都列出来 如下图 如何显示这个报表,具体操作如下 点击Tools点击Report...

笔记【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器

视频教程&#xff1a;【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器教程资料&#xff1a;https://pan.baidu.com/s/1VhGBcqeywM6jyXJxtytd1w?pwd6666&#xff0c;提取码&#xff1a;6666本套教程以Canal的底层原理展开讲解&#xff0c;细致地介绍了Canal的安装部署及常…...

如何重定向命令行日志信息到指定txt文件?

如果你想把命令行的输出重定向到指定的txt文件&#xff0c;你可以使用一些符号来实现。例如&#xff0c;你可以在命令后面加上>或>>符号&#xff0c;然后指定文件名。例如&#xff1a; command > output.txt 这样就会把command的标准输出保存到output.txt文件中&…...

物理机不能访问虚拟机kali的web服务解决方案记录

目录 环境 问题描述 解决方案 知识补充 效果测试 其他思路 环境 kali&#xff08;nat模式&#xff09;&#xff0c;物理机&#xff0c;可互ping 问题描述 kali的web服务器不能在物理机上访问。 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3.虚拟机能访问自己的web …...

服务器配置 | 在Windows本地显示远程服务器绘图程序

文章目录方法1&#xff1a;在MobaXterm的终端输入指令方法2&#xff1a;在Pycharm中运行前提概要&#xff0c;需要在本地Windows端显示点云的3d可视化界面 对于点云的3d可视化一般有两种方法&#xff0c;open3d显示或者是mayavi显示。这两个库都可以使用pip install来实现安装…...

高级信息系统项目管理(高项 软考)原创论文——质量管理(2)

<...

从0开始学python -47

Python CGI编程 -2 GET和POST方法 浏览器客户端通过两种方法向服务器传递信息&#xff0c;这两种方法就是 GET 方法和 POST 方法。 使用GET方法传输数据 GET方法发送编码后的用户信息到服务端&#xff0c;数据信息包含在请求页面的URL上&#xff0c;以"?"号分割…...

潍坊网站建设联系方式/aso优化吧

最近在研究 Yii 的权限控制功能&#xff0c;尽管Yii 自身提供了一个简单的权限管理&#xff0c;但是很多时候&#xff0c;我们还是需要对其做一点扩展。 在这里&#xff0c;我向大家推荐一个不错的扩展&#xff1a;SRBAC。 在Yii的官方网站的extension模块下&#xff0c;你可以…...

郑州网站制作汉狮网络/宁波seo推广优化哪家强

var 、let 、const的区别 何为闭包 Promise 继承call、apply 实现深拷贝 数据类型 字符串截取正则 原形和原形链 面试30秒链接 转载于:https://juejin.im/post/5cc6d43b6fb9a031ed20c584...

公司网站建设工作/五年级上册语文优化设计答案

简介 本文为您提供了在 Microsoft ADO.NET 应用程序中实现和获得最佳性能、可伸缩性以及功能的最佳解决方案&#xff1b;同时也讲述了使用 ADO.NET 中可用对象的最佳实践&#xff1b;并提出一些有助于优化 ADO.NET 应用程序设计的建议。 本文包含&#xff1a; • 有关 .NET 框…...

重庆做网站建设/磁力宝

情报情报&#xff01;大家千呼万唤的青少年编程能力等级测评&#xff08;CPA&#xff09;又回归啦而且更惊喜的是&#xff1a;本次考试更改为线上考试&#xff0c;疫情还未过去&#xff0c;不用扎推家长更放心&#xff0c;在家就能考试更便利。一直关注这个证书的家长&#xff…...

wordpress做门户网站/西安百度推广运营公司

本文原创&#xff0c;版权属作者个人所有&#xff0c;如需转载请联系作者本人。Q&微&#xff1a;155122733 -------------------------------------------------------------------------------------------------------- 使用步骤&#xff1a;1、把该脚本放到想要生成pyc的…...

公司网站开发费用入哪个科目/网络营销发展现状与趋势

重用 ListView Item ListView创建时其会创建屏幕可容纳数量的 Item。ListView 滚动时&#xff0c;刚消失的 item 会被保存到回收池中。新出现的 item 从回收池中获取避免反复创建&#xff0c;这个回收池由 ListView 维护。从回收池取出 item 会传递给 Adapter 的 getView() 方法…...