首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

Java 在使用 sql 语句 group by 时,遇到的一个困惑

  •  
  •   champloo · 22 天前 · 2628 次点击

    有一个销售记录表 包含了一些如下的内容 sellnotes: name money date (名称) (销售总额金额) (日期) 商品 A 100 2019 年 7 月 25 日 商品 B 200 2019 年 7 月 25 日 商品 C 300 2019 年 7 月 25 日 商品 A 6600 2019 年 7 月 24 日 商品 B 99800 2019 年 7 月 24 日

    最后想实现的是:通过 select name,sum(money) from Table where date>'2019 年 7 月 23 日' group by name desc 该语句得到的数据集 来源 A 99900 来源 B 6800 来源 C 300

    然后返回前端进行展示,现在卡在 sql 语句会写,但是返回类型,用什么去放这 3 条数据,我查了一下资料还是不明白,有老哥给个方案吗 我想的办法是用 List<商品> 去放,这样做是对的吗

    11 回复  |  直到 2019-09-02 17:26:58 +08:00
        1
    champloo   22 天前
    空格被缩进了,表内容就是 3 个字段,分别是商品,销售额,日期,一行记录的意思是某天某商品销售总额,现在想把某几天的销售总额拿来汇总,进行展示
        2
    champloo   22 天前
    刚刚查了一下怎么放代码,大家点一下 gist,蟹蟹
        3
    Raymon111111   22 天前
    如果你用的是 mybatis + xml 的方式去写这个 sql

    语句写成 select name, sum(money) as money ...

    那么接它返回值的类只要有 name 和 money 即可, resultType 那个属性里的类
        4
    champloo   22 天前
    @Raymon111111 蟹蟹回复,我想我找到了我的问题的答案,你讲的 as money 只要实体类有这个字段就能返回,这一点解决了我的问题,只是我并不是在 mybatis 中使用,是使用 greendao 框架在 Android 自带的数据库中使用 group by 语句,我相信在 greendao 中也能用同样的方式解决这个问题,蟹蟹拉
        5
    litanyue   22 天前
    sum(money) as money.
    sum(money)不能被映射到结果的类里,因为类里没有 sum 这个成员。
        6
    choice4   22 天前 via Android
    加个 DTO
        7
    BaiMax   22 天前 via Android
    一般来说,用 List<Object[]>
        8
    champloo   22 天前 via Android
    @litanyue 谢谢回复,我目前的做法是,android 自带的 SQLite 可以用游标去取返回行的具体数据,我就不把它映射成对象了。但是一会儿我会试试能不能,因为 money 是类的一个属性
    @choice4 DTO 我下去了解一下
    @BaiMax 谢谢回复,用这种方式去接,list 集合每个元素放的是不同对象,取出来要进行相应的转型,很合理
        9
    deco   18 天前
    不是有 ORM 框架或者自己封装的 DAO 层来解决,比如 MyBatis、Hibernate....他们不是可以自动将 sql 的数据转为 List<Obeject>
        10
    TraceurMW   14 天前
    List<Map<String,Object>>
        11
    champloo   14 天前
    @deco 谢谢回复,就是使用的 ORM 框架,android 的 greendao
    @TraceurMW 谢谢回复,明白了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2905 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    ♥ Do have faith in what you're doing.