bug日记
-
今天在写项目的时候碰到了就顺便记录一下,事情的经过是这样的↓

-
在数据库查询完后映射到po类的时候报了错
-
娃子还小不懂事,屁颠屁颠跑回去看po类、数据字段、mapper.xml,大眼瞪小眼看了半天没看出来啥问题。


-
没啥问题啊,于是我一顿debug找错,发现了自己mybatis框架里面这么一段代码

-
这一段是将数据库中表一行记录中的列映射成一个java对象,debug发现他是long类型的,我就觉得奇怪int对应的不应该是Integer类型的嘛??!!What?
-
但是仔细想想其实也好像确实是这么回事

-
这里我勾选了无符号数,所以这里int的容量应该是0~2^32,但是总所周知,java中的int/Integer容量只有
-2147483648~2147483647,所以我猜想基于这种情况,用Long来映射数据库中的int是合情合理的。
博主记录了一次在使用Mybatis映射数据库int类型时遇到的困惑,发现由于无符号数设置,Java的int实际范围超出预期,导致使用Long类型映射变得合理。





