最近使用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 注解是不起作用的