您的位置:首页 > 编程语言 > Java开发

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer

2016-09-27 18:02 916 查看
用mybaties开发获取数据库统计数据报: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer

1.xml文件:
<!-- 积分查询:App端我的积分列表查询,根据用户id和用户类型查询我的总积分 -->
<select id="countPointsAvail"   parameterType="java.util.Map"  resultType="java.util.Map">
select id,user_id AS userId,user_name AS userName,user_type AS userType, sum(points_avail) AS sumPointsAvail
from ykat_integral
where user_id=#{userId} and user_type=#{userType}  and  is_del=1
</select>


2.serverImpl文件:

//查询我的总积分
List<Map<String, Object>> sumIntegralList=integralDao.countPointsAvail(paramsMap);
Integer sumPointsAvail=(Integer)sumIntegralList.get(0).get("sumPointsAvail");


3.原因分析:因为BigDecimal不能强制转换成 String类型,要用toString()作为中间桥梁转换。

同理:Object,BigDecimal转换成int doulbe ,long 也是一样的。

4.故修改为:

//查询我的总积分
List<Map<String, Object>> sumIntegralList=integralDao.countPointsAvail(paramsMap);
Integer sumPointsAvail=Integer.valueOf(sumIntegralList.get(0).get("sumPointsAvail").toString()).intValue();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐