当前位置: 首页 > 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 注解是不起作用的

http://www.lryc.cn/news/25983.html

相关文章:

  • JavaScript String 字符串对象
  • Lazada如何做好店铺运营?产品定价是关键
  • 空口协议Eapol、802.11 Action、802.11 BAR 和 802.11BA、802.11 Encrypted Data讲解
  • C++类和对象
  • Leetcode.面试题 05.02 二进制数转字符串
  • UDPTCP网络编程
  • 【微信小程序】-- 全局配置 -- tabBar(十七)
  • Cortex-A7中断控制器GIC
  • JavaSE:常用类
  • Element中树形控件在项目中的实际应用
  • kaggle RSNA 比赛过程总结
  • 51单片机入门————LED灯的控制
  • J - 二进制与、平方和(线段树 + 维护区间1的个数)
  • BertTokenizer的使用方法(超详细)
  • 深度学习编译器CINN(3):编译过程中遇到的问题总结
  • yum 安装mysql8数据全过程
  • 内网vCenter部署教程一
  • java 进阶—线程的常用方法
  • hadoop的运行模式
  • 服务器(centos7.6)已经安装了宝塔面板,想在里面安装一个SVN工具(subversion),应该如何操作呢?
  • 从智能进化模型看用友BIP的AI平台化能力
  • 项目管理的主要内容包括哪些?盘点好用的项目管理系统软件
  • Allegro如何查看PCB上器件的库路径操作指导
  • 笔记【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器
  • 如何重定向命令行日志信息到指定txt文件?
  • 物理机不能访问虚拟机kali的web服务解决方案记录
  • 服务器配置 | 在Windows本地显示远程服务器绘图程序
  • 高级信息系统项目管理(高项 软考)原创论文——质量管理(2)
  • 从0开始学python -47
  • 【数据结构】八大经典排序总结