专业的编程技术博客社区

网站首页 > 博客文章 正文

那些年因字段类型不合理,导致返工、线上Bug

baijin 2024-09-10 10:53:25 博客文章 14 ℃ 0 评论

DO对象定义成int 类型

int 类型默认值为0 ,强烈建议DO使用Integer类型。踩地坑太多了

  • 1)有些场景字段值缺失,int 类型无法表示
  • 2)很多人喜欢用一些工具生成增量更新 update方法,结果把数据库字段误更新为0了。

boolean 类型 深坑

就是当前场景只有两者场景,也建议定义为Integer,定义成Boolean 也不要定义为boolean 。主要坑

  • 1) 不同框架json 对象转json 后 key 不一样(如isFlag 转json后变为flag)
  • 2) 对于字段缺失值无法表示
  • 3)无法扩展 只能表示两者状态,有新场景,就要推翻这个字段重来,但是牵一发动全身,很多提供出去的API,依赖这个字段的,都要改,到时就想抽自己耳光,当时为什么要定义成boolean 。

double 类型

金额字段、或者其他浮点数使用double 类型时新手犯的常见的错误,0.1 + 0.2 != 0.3

精度丢失问题,再说一遍 BigDecimal

数据库字段一不小心定义成关键字

一次将分组字段定义成了 group , sql死活报错,半天才想起来 ,我靠 group by 语句 group是关键字,不得不将xml 中sql group 字段使用时加上 "引号" (其实是 ``)

Map 入参

接手过一个老项目,大量使用Map,从service 到 底层mapper ,甚是恶心,怀着沉重的心情在项目中添加代码,不小心key 弄错了,与数据库字段没匹配上,导致变为全量查询了(乌鸦飞过的表情)

StringUtil

离了大谱,几乎每个中间件的jar 中都有自己的StringUtil ,每次一搜有许多,一次某个类中误用了一个中间件的StringUtil 的方法,但这个中间件不是必须的,在一次版本升级中,由于项目间接引入了低版本的,所以编译没问题,线上运行时,报NoSuchMethodException错误。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表