首页 > 作文

MyBatis的SUM映射问题及解决

更新时间:2023-04-04 20:48:15 阅读: 评论:0

目录
sum映射问题原因解决方式sum 返回映射问题(sum报表统计接口返回)mybatis sum 返回值映射

sum映射问题

当我们根据类别进行统计,返回的数据类型为hashmap<string,object>,获取数值类型,容易报

java.math.bigdecimal cannot be cast to java.lang.integer

场景如下:

// mapper层<lect id="lectinfobytest" resulttype="map">  lect sum(flag) as flags,taskid from qcdata group by taskid</lect>// 接口list<hashmap<string, object>> lectinfobytest();// 调用代码list<hashmap<string, object>> result = qcdao.lectinfobytest();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<hashmap<string, object>> result = qcdao.lectinfobytest();   // tostring  int flags=integer.parint(result.get(0).get("flags").tostring());  // string.valueof  int flags2=integer.parint(string.valueof(result.get(0).get("flags")));  // 空字符串  int flags3=integer.parint(result.get(0).get("flags")+"");  return jsonresult.ok(flags+flags2+flags3); }

需要注意的是,在强转之前最好判断一下是否为空,空字符串,类型是否匹配,避免强转失败;

sum 返回映射问题(sum报表统计接口返回)

mybatis sum 返回值映射

mapper.xml代码

<lect id="piechart"  resulttype="map">   lect  sum(com.thinkmoney*ord.commnumber) as totalprice , 危险化学品事故应急救援预案com.category as category from commodity com,orders ord    where com.commid=ord.commid and ord.orderstatus=1    group by com.category</lect>

pojo

 private static final long rialversionuid = 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 uraddress;    /**     * 订单状态 0未支付 1正常 2删除     */private integer orderstatus;    /**     * 收货人     */private string urname;    /**     * 收货人手机号     */private string mobilephone;    /**     * 发货状态 0未发货 1已发货 2确认收货     */private integer kdstatus;    /**     * 快递编号     */private string kdnumber;    /**     * 买家id     */private string buyurid;    /**     * 卖家id     */private string llurid;privat胃疼是什么原因导致的e  commodity commodity;private  bigdecimal  totalprice;

cont适合失恋听的歌roller

 /**     * 管理员首页 饼图     * */    @getmapping("/echars/piechart")    public string piechart(httpssion  ssion,httprvletrequest request){        list<hashmap<string,object>>  result =ordersrvice.piechart();        list<string>  totalpricelist= new arraylist<string>();        list<string>  categorylist= new arraylist<string>();        for( map<string, object> maplist : result ) {            totalpricelist.add(maplist.get("totalprice").tostring());            categorylist.add(maplist.get("category").tostring());        }        ssion = request.getssion();        system.out.println("totalpricelist:"+totalpricelist+",categorylist:"+categorylist);        ssion.tattribute("totalpricelist",totalpricelist);        ssion.tattribute("categorylist",categorylist);        return "/admin1的倒数是什么/echars/piechart";    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 20:48:14,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/856ed1d4a351ae0640f5c3492a28f888.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:MyBatis的SUM映射问题及解决.doc

本文 PDF 下载地址:MyBatis的SUM映射问题及解决.pdf

标签:类型   方式   返回值   收货人
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图