【急急急】 程序中插入数据库怎么会为0

时间:2022-10-21 16:53:05
程序中使用“stmt.setLong(m + 1, Long.parseLong(sourceKeySplit[k]))” 方式插入到内存库, 内存库中bigint类型最大长度支持18位,如果插入一个值为1234567891234567891的 19位的数 ,插入到数据库就变为0了,如果手动直接使用insert 语句插入一个19位的数据,数据库中会报错! 奇了怪了????

10 个解决方案

#1


你数据库可以用numeric或decimal类型

#2


你超出数据类型的范围了

#3


你都知道超出范围了啊

#4


太大了。超了。

#5


明显内存库有校验和对应处理
而你直接调用持久化的接口是肯定抛异常的
请看源码

#6


该回复于2014-04-18 13:36:15被版主删除

#7


既然都18了,为啥还要进去一个19的?不换一个啊

#8


数据过大了。

#9


配置数据库中该字段的类型,改的大一点

#10


在输入框等地方先控制好有效数据的范围

到操作数据库的时候
插之前检查一下入口参数的范围
插之后确认一下返回值是否正确,是否有异常发生

#1


你数据库可以用numeric或decimal类型

#2


你超出数据类型的范围了

#3


你都知道超出范围了啊

#4


太大了。超了。

#5


明显内存库有校验和对应处理
而你直接调用持久化的接口是肯定抛异常的
请看源码

#6


该回复于2014-04-18 13:36:15被版主删除

#7


既然都18了,为啥还要进去一个19的?不换一个啊

#8


数据过大了。

#9


配置数据库中该字段的类型,改的大一点

#10


在输入框等地方先控制好有效数据的范围

到操作数据库的时候
插之前检查一下入口参数的范围
插之后确认一下返回值是否正确,是否有异常发生