MyBatis的SUM映射问题怎么解决
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"MyBatis的SUM映射问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"MyBatis的SUM映射问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2026年11月03日MyBatis的SUM映射问题怎么解决
本文小编为大家详细介绍"MyBatis的SUM映射问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"MyBatis的SUM映射问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
SUM映射问题
当我们根据类别进行统计,返回的数据类型为HashMap
java.math.BigDecimal cannot be cast to java.lang.Integer
场景如下:
// Mapper层// 接口List> selectInfoByTest(); // 调用代码List > result = qcDao.selectInfoByTest();int flags=(Integer)result.get(0).get("flags"); // 报错return JSONResult.ok(flags);
原因
sql中的 sum() 返回返回值在mybatis中是作为BigDecimal来返回的,而不能用Integer来接收
解决方式
可以转换为字符串,然后再转换为int类型,在转换过程中,不能使用(String)这种方式强转,本不是String类型,可以使用toString(),也可以使用String.valueOf(),更简单的方式是用空字符串来转换;
public JSONResult test() { List> result = qcDao.selectInfoByTest(); // toString int flags=Integer.parseInt(result.get(0).get("flags").toString()); // String.valueOf int flags2=Integer.parseInt(String.valueOf(result.get(0).get("flags"))); // 空字符串 int flags3=Integer.parseInt(result.get(0).get("flags")+""); return JSONResult.ok(flags+flags2+flags3); } 需要注意的是,在强转之前最好判断一下是否为空,空字符串,类型是否匹配,避免强转失败;
sum 返回映射问题(sum报表统计接口返回)
MyBatis sum 返回值映射
mapper.xml代码
pojo
private static final long serialVersionUID = 1L; /** * 订单id */ private String id; /** * 订单编号 */ private String ordernumber; /** * 下单时间 */ private Date ordertime; /** * 商品名 */ private String commname; /** * 商品id */ private String commid; /** * 商品描述 */ private String commdesc; /** * 购买数量 */ private Integer commnumber; /** * 商品单价 */ private BigDecimal price; /** * 收货地址 */ private String useraddress; /** * 订单状态 0未支付 1正常 2删除 */ private Integer orderstatus; /** * 收货人 */ private String username; /** * 收货人手机号 */ private String mobilephone; /** * 发货状态 0未发货 1已发货 2确认收货 */ private Integer kdstatus; /** * 快递编号 */ private String kdnumber; /** * 买家id */ private String buyuserid; /** * 卖家id */ private String selluserid; private Commodity commodity; private BigDecimal totalPrice;
controller
/** * 管理员首页 饼图 * */ @GetMapping("/echars/piechart") public String piechart(HttpSession session,HttpServletRequest request){ List> result =ordersService.pieChart(); List totalPriceList= new ArrayList(); List categoryList= new ArrayList(); for( Map mapList : result ) { totalPriceList.add(mapList.get("totalPrice").toString()); categoryList.add(mapList.get("category").toString()); } session = request.getSession(); System.out.println("totalPriceList:"+totalPriceList+",categoryList:"+categoryList); session.setAttribute("totalPriceList",totalPriceList); session.setAttribute("categoryList",categoryList); return "/admin/echars/piechart"; } 读到这里,这篇"MyBatis的SUM映射问题怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
问题
类型
商品
文章
方式
空字符
订单
代码
内容
接口
收货人
状态
统计
妥当
买家
单价
卖家
原因
地址
场景
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国互联网科技工作委员会毛军
互联网电商科技
互联网巨头反垄断金融科技
没上市的科技互联网公司
互联网科技的发展
西安互联网科技
汇久创客互联网科技
顺玮阁互联网科技
苏州大垚互联网科技
上海电发互联网科技有限公司
云创客互联网科技公司
移动互联网科技股
国大互联网教育科技有限公司工作
国大互联网教育科技有限公司薪资
21世纪互联网科技成就
工业互联网科技成果转化
广州有谷有贝互联网科技有限公司
安徽零酒互联网科技有限公司
银川新华互联网科技学校招聘
每日互联网科技新闻
互联网科技公司起名
智能科技公司是互联网公司吗
网络科技有限互联网
唐信互联网科技
互联网科技ppt模板
互联网女皇 腾讯科技
天下捷融互联网科技
成都仁贤领冠互联网科技有限公司
湖南诚度互联网科技有限公司
互联网大会出现的黑科技