为何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字段存的值就是带符号,获取字段的长度有严格限制等。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM