为什么数据库 phone 字段不能为设为 int 类型?

向右看齐 2022-05-29 11:08 434阅读 0赞

今天遇到一个小bug。

问题:

  1. 数据库字段中phone 类型为 int 20.
  2. 然后将封装入参的 dto 对象中的 phone 字段改为 int.
  3. 结果 前台传入的 11位字符串类型的数字无法转换为 int.

原因:

  1. 因为 java 中和 mysql 中的 int 类型最大值是 2147483647 存储长度为 32bit.
  2. 所以范围是“-2^32”到“2^32-1”; 也就是“-2147483648”到“2147483647”。
  3. 而手机号为 11 位,超出了最大范围。

发表评论

表情:
评论列表 (有 0 条评论,434人围观)

还没有评论,来说两句吧...

相关阅读