如何不建实体类,用Mybatis将数据直接返回前端?

摘要:MySQL 统计每个时间段的数量:https:www.cnblogs.comvipsoftp19195343 在Mybatis中不建实体类,可以通过以下几种方式返回数据给前端: Mapper接口 public interface
MySQL 统计每个时间段的数量:https://www.cnblogs.com/vipsoft/p/19195343 在Mybatis中不建实体类,可以通过以下几种方式返回数据给前端: Mapper接口 public interface VipSoftOrderMapper { List<Map<String, Object>> getTimePeriodStatistics(); } Mapper XML <select id="getTimePeriodStatistics" resultType="java.util.Map"> SELECT CONCAT(LPAD(hour_range, 2, '0'), ':00~', LPAD(hour_range + 1, 2, '0'), ':00') as timePeriod, SUM(CASE WHEN HOUR(start_time) = hour_range THEN 1 ELSE 0 END) as startCount, SUM(CASE WHEN HOUR(end_time) = hour_range THEN 1 ELSE 0 END) as endCount FROM custody_order, (SELECT 0 as hour_range UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23) hours GROUP BY hour_range ORDER BY hour_range; </select> Service层 @Service public class StatisticsService { @Autowired private VipSoftOrderMapper vipsoftOrderMapper; @Autowired private StringRedisTemplate redisTemplate; public List<Map<String, Object>> getTimePeriodStatistics() { List<Map<String, Object>> timePeriodStatistics = null; String redisKey = RedisKey.TIME_PERIOD_STATISTICS + "_" + DateTime.now().year(); if (redisTemplate.hasKey(redisKey)) { String result = redisTemplate.opsForValue().get(redisKey); TypeReference<List<Map<String, Object>>> typeReference = new TypeReference<List<Map<String, Object>>>() {}; timePeriodStatistics = com.alibaba.fastjson.JSON.parseObject(result,typeReference); return timePeriodStatistics; } timePeriodStatistics = vipsoftOrder
阅读全文