有一个销售记录表 包含了一些如下的内容 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<商品> 去放,这样做是对的吗
1
champloo OP 空格被缩进了,表内容就是 3 个字段,分别是商品,销售额,日期,一行记录的意思是某天某商品销售总额,现在想把某几天的销售总额拿来汇总,进行展示
|
2
champloo OP 刚刚查了一下怎么放代码,大家点一下 gist,蟹蟹
https://gist.github.com/purechamploo/0274d619b1cea89180e7b784c5cf6996 |
3
Raymon111111 2019-08-25 10:11:06 +08:00
如果你用的是 mybatis + xml 的方式去写这个 sql
语句写成 select name, sum(money) as money ... 那么接它返回值的类只要有 name 和 money 即可, resultType 那个属性里的类 |
4
champloo OP @Raymon111111 蟹蟹回复,我想我找到了我的问题的答案,你讲的 as money 只要实体类有这个字段就能返回,这一点解决了我的问题,只是我并不是在 mybatis 中使用,是使用 greendao 框架在 Android 自带的数据库中使用 group by 语句,我相信在 greendao 中也能用同样的方式解决这个问题,蟹蟹拉
|
5
litanyue 2019-08-25 10:24:50 +08:00
sum(money) as money.
sum(money)不能被映射到结果的类里,因为类里没有 sum 这个成员。 |
6
choice4 2019-08-25 12:08:57 +08:00 via Android
加个 DTO
|
7
BaiMax 2019-08-25 12:56:06 +08:00 via Android
一般来说,用 List<Object[]>
|
8
champloo OP |
9
deco 2019-08-29 09:51:37 +08:00
不是有 ORM 框架或者自己封装的 DAO 层来解决,比如 MyBatis、Hibernate....他们不是可以自动将 sql 的数据转为 List<Obeject>
|
10
TraceurMW 2019-09-01 19:44:34 +08:00
List<Map<String,Object>>
|