bug经过:点击修改无法展示信息(修改时调用queryOne,以id(long)为值,页面传过去的id=1480042498255640-00 ,在数据库中该id=148004249825564012,即错误的id)

根本原因:

js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。这个值为16位。

解决方法:

1.后端发字符串类型。

将后端发过来的long类型转为string类型再向前端传。如果向前端传的是DAO集合,则每个DAO都需要转类型,太过于繁琐。想想就算了。

2.在userDao中加入一个字段

如果项目已经成型并且修改数据库会造成不可预料的问题那么可以在User对象中再增加一个String类型id映射字段,如下
    private Long userId;
    private String userIdStr;
    public String getUserIdStr() {
        return this.userId+"";
    }
    public void setUserIdStr(String userIdStr) {
        this.userIdStr = userIdStr;

}

这个方法是比较靠谱的,确实可以正常的显示数据,查询单个数据id的值都是正确的。但修改用户时无法获取前端传过来的userDao中的userIdStr的值,因为上面的getUserIdStr()不能获取userIdStr的值(如果id没有值)。

3.控制用户新建数据时id的长度。兜兜转转觉得这个最方便。

温馨提示:以后设计表字段时尽量用varchar类型。

js大数字类型(超过16位)失真问题相关推荐

  1. js处理后端返回超过16位大数字方案

    js处理后端返回超过16位大数字方案 这个问题与这篇博客讲的问题类似.(https://blog.csdn.net/StoneVivi/article/details/105210934).这里就不具 ...

  2. 使用Python,OpenCV进行卡类型及16位卡号数字的OCR

    使用Python,OpenCV进行卡类型及16位卡号数字的OCR 1. 效果图 2. 原理 2.1 OCR-A字体 2.2 检测过程步骤 2.3 优化 3. 源代码 参考 这篇博客将介绍如何通过Ope ...

  3. short类型占16位,可以赋给short类型的最大值32767,最小值为-32768

    short类型占16位,可以赋给short类型的最大值32767,最小值为-32768 最大值0111111111111111 = 32767 最小值1000000000000000 = -32768

  4. 数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。

    加法伺候 //超过20位数值相加---------------------------------------- function bigNumAdd(a, b) {if (!(typeof a == ...

  5. MD5加密方式和MD5加密后的类型(16位和32位)

    文章目录 1. 加密方式 2. 加密后的格式 代码收录 1. 加密方式 MD5一般的加密方式是下面这种方式 public String Md5(String str) {if (str.equals( ...

  6. c语言那个类型是16位,c语言基本数据类型

    1,常用数据类型及所占大小 short.int.long.char.float.double 这六个关键字代表C 语言里的六种基本数据类型. 在32 位的系统上short 内存大小是2 个byte: ...

  7. js 大数字单位处理 千、万、千万、亿....

    private setText(nxtjb,jb_txt){ let fr = 1000; let ad = 1; let num = 3;//几位数 let fm = 1;//单位表示1000 10 ...

  8. JS格式化数字(每三位加逗号)

    方法一 function toThousands(num) {var result = [ ], counter = 0;num = (num || 0).toString().split('');f ...

  9. 解决Vue 前端Long型超过16位精度丢失问题

    问题描述 后端利用雪花算法生成id前端接受时候精度会丢失, 这是idea控制台打印的id 这是在数据库里的id 很明显后面几位数做处理了,不过不用慌这个问题还是很简单的下面我来说下我的解决方案 解决方 ...

最新文章

  1. Android Context 详解
  2. 全球大半网络瘫痪,背后原因竟来自这家无名小公司
  3. OpenCV中Mat类的图像如何设置ROI
  4. 记一次线上商城系统高并发的优化
  5. 小程序 返回多条图文,类似新闻或者博客的展示,其中遇到的bug
  6. [Android] The connection to adb is down, and a severe error has occured
  7. 两者相差百分比怎么算_相差200元!小米11和iQOO 7谁更值得买?说说真实想法
  8. 程序员,别逼自己刷题了!每天花10分钟做这件事,Python 能力暴增!
  9. 日本知名汽车零部件公司巡礼系列之株式会社70
  10. ews java api maven_通过 EWS JAVA API读取exchange邮件
  11. Docker镜像基础命令
  12. 根据输入的银行卡号显示开户银行类型,并将银行卡号四位分隔
  13. JAVA初学者学习书籍推荐
  14. this关键字、this关键字应用
  15. 输入关键词查询论文例句网站
  16. JS逆向加密——七麦网analysis参数
  17. 天旦BPC 4.3发布,人工智能产品化第一步
  18. Liquid Telecom推出泛非Wi-Fi漫游枢纽
  19. 和功率的计算公式_电缆、功率、耗电量计算公式大全
  20. MySQL中删除所有表的方法

热门文章

  1. 【晴神宝典刷题路】codeup+pat 题解索引(更新ing
  2. js中的console.log()用法
  3. ARVE: Augmented Reality Applications in Vehicle to Edge Networks
  4. 使用BeautifuleSoup分页下载壁纸
  5. C# 运用开放协议连接拧紧枪控制器(马头)
  6. npm 安装报错 rollbackFailedOptional verb npm-session 解决办法
  7. 获取苏宁易购商品信息操作详情
  8. 薄盒 | 方文山原创数字潮玩《庞克猫史汀》系列正在展出中
  9. ACT游戏开发记录之地图打包工具
  10. RMAN完全恢复与不完全恢复测试