MyBatis的SUM映射问题怎么解决
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本文小编为大家详细介绍"MyBatis的SUM映射问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"MyBatis的SUM映射问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
倩女端游服务器繁忙
热门的域控制器软件开发
一汽大众软件开发点评
zabbix 数据库分区
即将爆发的网络安全
怎么查数据库的归档日志
软件开发每月工资是多少
电商系统软件开发服务商
银行高管网络安全
通常我们所说的服务器属于什么
酒店系统维护数据库
网络数据库技术实验
工业互联网络安全攻防实战
奉贤区环保网络技术哪家强
学软件开发的视频教程
在网络技术中什么是拓扑学
健达金信网络技术服务有限公司
电脑软件开发培训
北京鼎云互联网科技有限公司
服务器cad图块
国外网络安全法案例讲解
vfp数据库程序设计实习报告
山西轻便边缘计算服务器服务器
h3c日志服务器配置
网络安全 重中之重
上海php软件开发培训
网关和云服务器对接
学软件开发的视频教程
浪潮M36服务器
吃鸡be服务器