发现在很多能根据MySQL数据库表结构自动生成 bean,mapper,service,controller的开发框架中,如果字段的数据类型是int,一般都是对应于java类型中的Long类型,这是为何?
下图展示MySQL中int分别为有符号及无符号的情况下的取值范围;展示java中Integer和Long的取值范围。从对比中可以看出,如果MySQL选择无符号的int类型时,它的取值范围是要超过java的Integer类型的,所有猜测为了确保能包括MySQL中int的所有取值范围,使用java中的Long映射最为可靠。
另外看下int类型是否有符号的设置: