引入
在使用ibatis的时,有遇到这么个情况:数据库表的字段age是允许为空的,其对应实体类的属性是int类型的。然后恰好碰到了这种情况:当查询时,数据库age字段为空,在ibatis的映射文件里,我把其查询结果返回到对应的实体类里:resultClass="com.teana.vo.User",而问题就出现在这里了,由于User类的age属性是int的,当在数据库查询age字段为null时,把null赋值给了int类型的age,于是ibatis抛异常了。 |
解决方案
1、在数据库允许为空的字段设置默认值。(这样做估计是不行的,而且工作量巨大) 2、把实体类里的所有基本类型改为包装类型 (工作量巨大) 3、在<resultMap>里把允许为空的字段设置一个默认值 (跟第一种很相似,工作量巨大),然后查询结果用resultMap接收 4、这种情况不多见,先只改当前出错的地方,把出错地方实体类的属性改为Integer |