关于主键设置为bigint unsigned,在java中用什么承接呢?

1 mysql bigint unsigned vs java.lang.Long

在 MySQL 数据库中,UNSIGNED BIGINT 可表示的范围是 0 到 18,446,744,073,709,551,615。在 Java 中,long 类型的取值范围是 -9,223,372,036,854,775,8089,223,372,036,854,775,807,不能完全覆盖 UNSIGNED BIGINT 的范围。
在这里插入图片描述

2 java处理数据库中的 UNSIGNED BIGINT 类型

在处理数据库中的 UNSIGNED BIGINT 类型时,不同的场景可能需要不同的处理方式。以下是如何在 Java 中针对 B 端和 C 端业务处理 UNSIGNED BIGINT 类型的数据。

2.1 B 端业务场景

在 B 端业务中,如果业务主键使用 UNSIGNED BIGINT 类型且当前实际使用范围远未达到 LONG 类型的上限(92,233,720,368.55 亿),可以使用 Long 类型承接。

例如,假设一个商家管理系统的商家表的主键 ID 是 UNSIGNED BIGINT,但考虑到当前中国的企业数量大约是一亿左右,用 Long 类型来承接是足够的。

2.2 C 端业务场景

在 C 端业务中,特别是像订单 ID 这样高速增长的情况,UNSIGNED BIGINT 的范围可能会超过 LONG 类型的上限。在这种情况下,需要使用 java.math.BigInteger 来处理。

示例代码

import java.sql.<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值