直接上问题
需要通过查询返回一个map集合,唯一参数是一个传入了一个时间
Map<key(年月,例如"202003"),value(list集合)> get(String year(例如"2020"))
数据库中时间是保存的时间戳格式
我希望只操作一次数据库,来将所有符合年份的数据拿到,并按照key(月份),value(符合key的年份的数据)返回,
比如输入2020年,2020年现在时间是 "2020/3/10",我希望Map集合中有三条数据,key是这三个月,value是这三个月的数据,如果是2019年,我希望有12条数据
现在关键点是开在,不知道如何让数据库根据年份查出数据后,再根据月份自动分组存入到集合里面,因为唯一传入参数是year年份,所以想问一下大佬怎么根据年份实现自动分月查询
这不就是按照年份查询所有记录么,本来就只查一次啊,至于你最后需要返回的map,在程序里自己构建啊,记录都拿到了,遍历结果集,获取所有月份,为了去重,保存在set中,然后遍历set,构建最终map的key和对应value的list集合,然后再遍历一次结果集,给对应的list中add就完事了。
话说,你不会是想直接用sql查出最终要的结果吧,劝你还是别这么折腾数据库的好o(╯□╰)o
写存储过程吧,存储过程中再使用函数对数据进行处理,但是直接返回你想要的map格式基本不可能。你可以在函数中将每个月份与对应数据拼凑在一起如{年月:对应数据以逗号分割;;年月:对应数据以逗号分割...},在java端直接对这条数据进行处理这样你在java端的处理量会小一点。你这么复杂的数据我建议你在数据库端进行预先处理。