概述
数据库中存int和tinyint注意点:
|
最小值
|
临界值
|
临界值
|
最大值
|
结果
|
---|---|---|---|---|---|
unsigned tinyint | 0 | 127 | 128 | 255 | 没有问题 |
signed tinyint | -128 | 0 | 127 | 没有问题 | |
unsigned int | 0 | 2147483647 | 2147483648 | 4294967295 | 当值大于2147483648出现问题 |
signed int | -2147483648 | 0 | 2147483647 | 没有问题 |
结论:通过java的rs.getInt(),2147483648和4294967295都有问题,所以只要unsign int超出2147483647都会有问题。(当然如果你rs.getLong也是没有问题的,因为java中Long的最大范围为2^63-1,但是一般写程序都是rs.getInt(),所以需要注意一下)。
解释:
Java中的Integer 源码:
public
final
class
Integer
extends
Number
implements
Comparable<Integer> {
/**
* A constant holding the minimum value an {@code int} can
* have, -2<sup>31</sup>.
*/
@Native
public
static
final
int
MIN_VALUE =
0x80000000
;
/**
* A constant holding the maximum value an {@code int} can
* have, 2<sup>31</sup>-1.
*/
@Native
public
static
final
int
MAX_VALUE =
0x7fffffff
;
//2147483647
|
所以超过2147483647会报错。如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '2.147483648E9' in column '4' is outside valid range for the datatype INTEGER
最后
以上就是现实衬衫为你收集整理的tinyint和int分别针对unsign和sign的存储范围的全部内容,希望文章能够帮你解决tinyint和int分别针对unsign和sign的存储范围所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复