为何mysql中的int类型对应于java中的Long类型

发现在很多能根据MySQL数据库表结构自动生成 bean,mapper,service,controller的开发框架中,如果字段的数据类型是int,一般都是对应于java类型中的Long类型,这是为何?

下图展示MySQL中int分别为有符号及无符号的情况下的取值范围;展示java中Integer和Long的取值范围。从对比中可以看出,如果MySQL选择无符号的int类型时,它的取值范围是要超过java的Integer类型的,所有猜测为了确保能包括MySQL中int的所有取值范围,使用java中的Long映射最为可靠。

另外看下int类型是否有符号的设置:

总结:其实自动生成代码的框架使用Long来映射MySQL的int更多的是为了原理上符合要求,实际开发中很多情况设置为Integer来映射也完全可以,比如MySQL字段存的值就是带符号,获取字段的长度有严格限制等。

原文地址:https://www.cnblogs.com/silenceshining/p/14027951.html