MyBatis的SUM映射问题怎么解决
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本文小编为大家详细介绍"MyBatis的SUM映射问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"MyBatis的SUM映射问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
switch 服务器发生故障
喋血复仇服务器无法连接
db2数据库日志查看
网络安全检查重在保障三平衡
服务器 风扇 改装
什么是负责数据库日常运转
您的游戏版本与服务器版本不匹配
服务器节电模式黑屏
懒主人互联网科技
华硕b85支持服务器内存条
黔江区网络软件开发流程要求
网络安全绘画简单画画
工程软件开发技术书
克隆数据库
软件开发成本核算方法是
传奇142区服务器
怎么通过页面抓包找到后台数据库
手机挂代理服务器加速软件
清竹服务器
手机网络安全有哪些方面
员工软件开发保密协议书
山东软件开发模型
重庆互联网科技产业强势崛起
服务器网卡配置地址
我的世界少人服务器
网络安全进展视频
java数据库操作基本流程
数据库GDB怎么生产元数据
美工网络技术的就业
网络技术基础款t恤