在数据库中通过 sum 查询出来的数值,进行赋值时会进行报错
MyBatis 的 XML 文件类似这样
select sum(xxx) as xxx, sum(yyy) as yyy from ttt t <where> …… </where>
查询结果是一条记录,我使用 HashMap 进行存放,Dao 层定义类似这样
HashMap<String, Double> getXXXXX(HashMap map);
调用时是这样
HashMap<String, Double> 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<String, Double> 定义为 HashMap<String, Object> ,然后进行一次转换,转换代码如下:
page.getList().get(i).setXXXX(Double.valueOf(sum.get("xxx").toString()));
将 Object 转换为 String,再将 String 转换为 Double 即可