MyBatis的SUM映射问题怎么解决
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,本文小编为大家详细介绍"MyBatis的SUM映射问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"MyBatis的SUM映射问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2024年10月18日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安全错误
数据库的锁怎样保障安全
书法拍卖数据库
做软件开发也要上夜班吗
配置式软件开发
网络安全性能
学习网络安全法的简报
跃升暴龙兽数码兽数据库
淘宝二手服务器陷阱
服务器通讯异常什么原因
编码器软件开发
网络安全教育讲座稿策划书
怎么建立工资数据库文件
受大众喜欢的服务器维护
幼儿游戏软件开发
梁溪个体执照代办网络技术工作室
438b 软件开发计划
无锡网络服务器机柜直接供货
数据库对微信的认识
c 数据库 using
玉林网络安全支队支队长
捷克国家网络安全吗
高考网络安全知识
太仓正规网络技术管理方法
聚美网络技术有限公司
博山服装库存软件开发公司
计算机网络技术教师资格证书
网络安全防校园贷试题
西安无忧科网软件开发有限公司
什么叫统计数据库
身份证号数据库数据类型
人社业务与数据库的连接应用功能