Ibatis查询数据库字段为空时的处理



引入

在使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值