1. int变long
MySQL中id字段存的是unsigned int 类型,MyBatis框架却将其转为了Long
MyBatis框架使用Long来映射MySQL的int。原因是我们的数据库id字段设置的类型为无符号的Int型
如果MySQL选择无符号的int类型时,它的取值范围是要超过java的Integer类型的,所以MyBatis框架为了确保能包括MySQL中int的所有取值范围,使用java中的Long映射最为可靠。
2. 查询结果集合size为1,但是集合内对象为null
在写查询SQL时,务必要带一个非空字段作为结果集,否则当查询结果字段均为空值时,返回的集合size为1,但是对象为null,从而引发空指针。
select a,b from temp where tempId = #{tempId}
当a、b均为null时,集合的size为1,但是集合对象为null,会引发空指针,正确写法应该如下
select a,b,tempId from temp where tempId = #{tempId}