MybatisPlus自定义ID生成器(解决官方雪花算法长度过长导致JS精度丢失问题)_mybatis-plus id生成自定义雪花算法-程序员宅基地

技术标签: java  mybatis  其他  javascript  

1. Mybatis官方ID生成策略的问题

我们知道,mybatis-plus官方提供了很多ID生成策略
官方地址
在这里插入图片描述
而其中个人觉得性能上最好的当属ASSIGN_ID,该策略能够得到一个19位的Long类型的值,Long类型的值天然有序,能很好的支持数据库的索引,所以我个人在工作中一般会把ID类型设置为bigint(mysql),然后在代码中使用这个策略。

那么这个策略有什么问题呢?生成的19位对于java long类型来说没有任何问题,问题在于我们给前端返回的时候,前端js最长只能支持到17位的数值类型,后面两位会补0,也就是说,比如一条数据的ID为:133470684736716869,到前端看起来就会变成1334706847367100,这就导致后续的业务会报错

2. 解决方案

现在你知道了问题的原因在于JS无法解析19位这么长的数值类型,那么有两种解决方案

  • 不给前端返回数值类型,把数值类型转化为字符串类
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq32933432/article/details/119793875

智能推荐

什么是UUID?_移动硬盘里.database_uuid-程序员宅基地

文章浏览阅读1.2k次。UUID是Universally Unique Identifier 的缩写,它是在一定范围内唯一的极其生成的标示符有以下几个涵义:1:经由算法生成2:非人工3:特定范围重复几率小应用:使用UUID的好处在分布式软件系统中就能很好地体现出来,他保证每个节点所生成的标示不会重复并随着web服务等整合技术的发展,UUID的优势将会更加明显<我只是用来生成数据库中的主码>详细内容请打开一下链..._移动硬盘里.database_uuid

Java系列-集合框架理解_java框架理解思路-程序员宅基地

文章浏览阅读2.6k次,点赞7次,收藏9次。关于java集合框架的理解_java框架理解思路

数组内置函数 findIndex() 的用法>查找数组中满足指定条件的元素的索引_封装函数,查找元素在数组中的索引。 如果找到该元素(第一个元素即可),则返回该元-程序员宅基地

文章浏览阅读633次,点赞9次,收藏6次。是 JavaScript 数组的一个内置方法,用。于查找数组中满足指定条件的元素的索引。第一个满足条件的元素的索引。_封装函数,查找元素在数组中的索引。 如果找到该元素(第一个元素即可),则返回该元

25.hadoop系列之Yarn Tool接口实现动态传参_yarn脚本后缀传值-程序员宅基地

文章浏览阅读139次。当我们通过yarn向集群提交自定义任务时,若传入队列参数会报错此时我们需要Tool工具,进行动态传参控制。_yarn脚本后缀传值

Android Studio查看Android源码_win查看安卓源码-程序员宅基地

文章浏览阅读4.3k次。最近在折腾面试,然后就有些组件的原理需要看源码,之前也弄过,都是用的Source Insight在win10里面搞的,今天试了一下Mac,源码60G,我这个版本是Android 11,目前是最新版的代码。用AS看源码首先要构建项目配置文件,就是ipr和iml工具,用到Android源码里面的idegen工具,但是你用官方的mmm命令方法会报错,说文件格式不对,本来是可以用mmm命令直接生成的,但是Mac的文件系统跟官方要求的有问题,所以就放弃了,有想试试的同学可以执行下面的命令。cd ~/aosp_win查看安卓源码

使用正则表达式判断URL地址是否合法_判断是否是正常链接正则表达式-程序员宅基地

文章浏览阅读1k次。在编程中,我们常常需要对给定的URL地址进行合法性检测。函数来判断URL地址是否合法。该函数接受一个URL地址作为参数,并返回一个布尔值,表示该URL地址是否合法。总之,在Python中使用正则表达式判断URL地址是否合法非常简单,只需要编写一个正则表达式,然后使用。在函数内部,我们使用正则表达式来匹配URL地址的各个部分,并将它们拼接在一起。函数来判断该URL地址是否符合我们定义的正则表达式规则。匹配URL地址的路径部分。在示例代码中,我们将一个合法的URL地址。使用正则表达式判断URL地址是否合法。_判断是否是正常链接正则表达式

随便推点

GEE入门篇|图像分类(一):监督分类_gee分类-程序员宅基地

文章浏览阅读1.8k次,点赞31次,收藏28次。GEE入门篇|图像分类(一):监督分类_gee分类

iOS中的URL Scheme_苹果计算器url scheme-程序员宅基地

文章浏览阅读857次。iOS中的URL Scheme 在iOS的SDK中提供了一个非常有意思的功能,它能将iOS的Application同自定义的URL Schema绑定,同时可以通过URL Scheme在浏览器或者是其他应用中启动这个Application。本文主要介绍如何通过URL Scheme的方式启动应用和参数的传递。 对应的源码配置文件为:CFBundleURLTypes_苹果计算器url scheme

Android腾讯直播SDK接入问题解决方案-程序员宅基地

文章浏览阅读335次。下载好Demo解压。1.是按照aar的集成方式。1.1导入aar包到libs里面1.2 add的gradle添加defaultConfig{ndk{abiFilters 'armeabi-v7a', 'armeabi'}}dependencies添加:/腾讯直播compile(name: 'LiteAVSDK_Professional_5.3.6004', ext: 'aar')1.3项目的gra..._android 腾讯直播达到试用版限制liteavsdk_trtc dau reaches the trial edition l

nRF5 SDK for Mesh(一) 介绍和下载源码-程序员宅基地

文章浏览阅读670次。一:  官网介绍地址:http://www.nordicsemi.com/Products/Bluetooth-low-energy/nRF5-SDK-for-MeshNordic offers a complete solution for the Bluetooth mesh specification with the nRF5 SDK for Mesh and the nRF..._nrf mesh下载

rpm常用命令记录_rpm命令-程序员宅基地

文章浏览阅读1.7k次。linux - rpm _rpm命令

ssm小学生课外知识学习网站+vue-程序员宅基地

文章浏览阅读26次。用户可以在首页访问小学生课外知识学习网站方面信息,首页上面有导航栏,导航栏上面有课外知识,试卷列表,学习资讯,个人中心,后台管理等,点击导航栏课外知识可以看到很多信息,点击某个信息可以查看对应详情信息,用户登录后可以对小学生课外知识学习网站文章信息进行评论操作。管理员可以对课外知识进行添加,查询,修改,删除操作。下图就是课外知识管理页面。管理员可以对知识分类信息进行删除,查询和修改操作。前端技术:JavaScript、VUE.js(2.X)、css3。数据库管理工具:Navicat或sqlyog。