关于 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

本文介绍了一次使用MyBatis进行数据库查询时遇到的类型转换错误,并给出了正确的解决方案。作者原本尝试将从数据库中获取的一个32位char类型字段直接转换为String类型,但这种方式导致了异常。最终通过调用toString()方法成功解决了问题。

今天遇到了这个异常,其实是自己经验欠缺所致。我是通过mybatis查询到数据库传过来的主键,是一个32位的char类型。

代码:

//查询总账表的该组织总账记录,包括该条记录的主键id、账户余额
DzzZzb zzbInfo = null;
Map map = (Map) IbatisSQL.selectOne("df.getZzbOrganid", parameter);
String zzid = (String)map.get("ZZID");

结果就报了标题处的异常。

查询发现,问题是出在强转上,只要改成:

String zzid = map.get("ZZID").toString();

就可以解决。因为BigDecimal不能强制转换成 String类型,要用toString()转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值