在数据库中通过 sum 查询出来的数值,进行赋值时会进行报错
MyBatis 的 XML 文件类似这样
select sum(xxx) as xxx, sum(yyy) as yyy from ttt t
……
查询结果是一条记录,我使用 HashMap 进行存放,Dao 层定义类似这样
HashMap getXXXXX(HashMap map);
调用时是这样
HashMap sum = xxxxDao.getXXXXX(map);
if (sum != null) { page.getList().get(i).setXXXX(sum.get("xxx"));page.getList().get(i).setYYYY(sum.get("yyy"));
}
然后就报错了,报错如下:
Type mismatch Can't assign java.math.BigDecimal to java.lang.Double
解决方法是,将 HashMap 定义为 HashMap ,然后进行一次转换,转换代码如下:
page.getList().get(i).setXXXX(Double.valueOf(sum.get("xxx").toString()));
将 Object 转换为 String,再将 String 转换为 Double 即可