数据库属性带下划线的注意事项(下划线bug)

news/2024/10/9 15:17:59/文章来源:https://www.cnblogs.com/lian369/p/18454346

①如果数据库的属性带有下划线,如下

②实体类代码

 1 package com.lian.pojo;
 2 
 3 import com.baomidou.mybatisplus.annotation.IdType;
 4 import com.baomidou.mybatisplus.annotation.TableField;
 5 import com.baomidou.mybatisplus.annotation.TableId;
 6 import java.io.Serializable;
 7 import lombok.Data;
 8 import lombok.EqualsAndHashCode;
 9 import lombok.experimental.Accessors;
10 
11 /**
12  * <p>
13  * 
14  * </p>
15  *
16  * @author lsx
17  * @since 2024-10-08
18  */
19 @Data
20 @EqualsAndHashCode(callSuper = false)
21 @Accessors(chain = true)
22 public class Materials implements Serializable {
23 
24     private static final long serialVersionUID=1L;
25 
26     /**
27      * 物料编号(主键)
28      */
29     @TableId(value = "material_id", type = IdType.AUTO)
30     private Integer materialId;
31 
32     /**
33      * 物料名称
34      */
35 
36     private String materialName;
37 
38     /**
39      * 物料可用数量
40      */
41     private Integer quantity;
42 
43 }

 

③操作方法

在mapper文件中的sql应该是

 前面的material_name是数据库中对应的material_name,后面的materialName是实体类中与material_name对应的变量名称!!!!!!!!!!!

④在传递参数时,传递的参数名称应是与实体类中相同的变量名,例如上面这个例子,我需要传递数据库中的material_name和quantity,然后我在apipost中测试时传递的数据应为:

 应该与实体类中名字相同

 

 

⑤报错信息

(1)如果在mapper文件中如下图所写时(后面values的变量未与实体类对应时,后端会报错对应的material_name没有对应的getter方法

 报错信息

 (2)如果在apipost中传递数据时,传递参数仍写的是带下划线的属性名(material_name)而不是实体类中的属性名(materialName)的话,会报错material_name属性值为null

如下(错误的情况)

 报错信息

 总结

数据库中属性带下划线的情况下,需要在后端修改两点

(1)在mapper语句中,需要将后面values中的属性名与实体类中的属性名对应

(2)在传递参数时,应该与实体类中的属性名对应,而不是与数据库表中的属性名对应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810554.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效开发最佳实践全面指南

学会表达在写复杂表达式时,可使用一个变量将表达式用变量的方式表示 函数、变量命名要语义化学会复盘花一些时间清理自己的代码 尽量以函数式进行编程拥抱变化在开发功能时,要考虑变化的情况。该死的产品经理在封装时要考虑能否封装成一个 js 模块,后续只需要调用响应的 API…

【 java 安全】Java对象都是堆上分配?看完Java中对象逃逸分析就知道答案了

原创 龙虾编程随着JIT编译期的发展与逃逸分析技术逐渐成熟,所有的对象都分配到堆上也渐渐变得不是一定的。在编译期间JIT会对代码做很多优化,其中有一部分优化是减少内存堆分配压力,这里有一种重要的技术叫逃逸分析。逃逸分析是一种可以有效减少Java程序中同步负载和内存堆分…

【SQL SERVER】PIVOT与UNPIVOT之行列转换

基础例子 在数据处理的过程中,常常遇到行列转换的问题。例如,人员的考勤。可能表格中,1~12月都在同一个字段,实际中,为了查看方便,同一个人的考勤记录,能在同一行,这样查询起来比较方便(行转列)。或者,表格设计的时候就是1~12月,在其他数据分析时需要将列转行。即类…

SkyWalking组件自定义链路追踪

SkyWalking组件通过添加相关配置就可以获取到接口的相关信息,更加方便的追踪和处理问题 接下去讲下步骤: 1、在service层添加两个注解;@Trace@Tags({@Tag(key = "getDataByCode",value = "returnedObj"),@Tag(key = "getDataByCode",value = …

沈师傅食品携手纷享销客CRM系统,加速数字化转型

沈师傅食品有限公司是一家专业研发、生产和销售鸡蛋干系列产品的大型集团 公司,技术与研发实力雄厚,先后获得多项国家专利。公司成立于2006年,开创 了全新的鸡蛋干品类,创办人沈国平先生素有“鸡蛋干之父”之称,先后被央视、 四川电视台、北京卫视、优酷、凤凰网等国内知名…

总奖金高达10万元!华为算法精英实战营“亲和任务调度系统”来啦!

在无线领域,利用AI技术对任务准确建模、多核系统任务最优调度等问题都是非常有价值的算法难题。随着物联网、大数据、AI时代的到来,时延、可靠性等指标要求越来越高,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。CPU内部的大部分资源用于缓存和逻辑控制,适合运…

webapi 创建(空)

1. 打开vs2019 ,选择创建新项目2. 选择ASP.NET Web 应用程序(.NET Framework)3. 配置项目信息(名称,位置,框架)4. 选择空模板(WebAPI复选框选中)5. 这样里面就没有MVC的三层,因为前后端分离,webapi中只有两层。6. 空的WebApi程序创建完成。

高产胜那啥,带你上线我的新项目!

希望大家能通过这个项目掌握企业级项目的开发、优化和上线方法,得到全方面编程技能和程序员素养的提升。大家好,我是程序员鱼皮。9月,我处于极度爆肝状态,成功完结了最新带大家做的项目 面试刷题平台 。当我们做完一个项目后,一定要记得把项目上线,这样才算是完成了学习的…

创建空webapi服务

1. 打开vs2019 ,选择创建新项目2. 选择ASP.NET Web 应用程序(.NET Framework)3. 配置项目信息(名称,位置,框架)4. 选择空模板(WebAPI复选框选中)5. 这样里面就没有MVC的三层,因为前后端分离,webapi中只有两层。6. 空的WebApi程序创建完成。

.NET 代码混淆工具-JIEJIE.NETWX

阅读目录前言 项目介绍 项目功能 项目效果:蓝猫机场 项目地址 最后前言 JIEJIE.NET是一款强大的开源.NET程序集混淆工具。它利用深度加密技术和多样化的混淆策略,有效地保护了.NET软件的版权和源代码安全,防止未经授权的访问和篡改。 项目介绍 JIEJIE.NET是一个用C#开发的开源…

深入理解 HDFS 错误恢复

我们从动态的角度来看 hdfs 先从场景出发,我们知道 hdfs 的写文件的流程是这样的:数据以 pipeline 的方式写入 hdfs ,然后对于读取操作,客户端选择其中一个保存块副本的 DataNode 来读数据.考虑这样两个场景:hbase rs 在写 wal log 的时候.如果一个 rs 挂了.那么这个 rs 会转移…

深入理解HDFS 错误恢复

我们从动态的角度来看 hdfs 先从场景出发,我们知道 hdfs 的写文件的流程是这样的:数据以 pipeline 的方式写入 hdfs ,然后对于读取操作,客户端选择其中一个保存块副本的 DataNode 来读数据.考虑这样两个场景:hbase rs 在写 wal log 的时候.如果一个 rs 挂了.那么这个 rs 会转移…