最近做了一个日志功能,当用户访问接口后,会记录哪个接口,返回结果等信息,
记录请求地址,ip,请求方法,参数和请求时间。没有关联到个人。数据表如下:
现在想做一个统计最近七天的访问接口数量,之前想的有些复杂。
首先获取今天的日期,根据日期查询数量,再查询出近七天的数量。后来发现sql可以直接解决,
CURDATE() 函数返回当前的日期。
curdate()直接返回当天
查询最近七天的访问量,sql如下
select a.click_date as 日期,ifnull(b.count,0) as 数量
from (
#查询当天
SELECT curdate() as click_date
union all
#前一天
SELECT date_sub(curdate(), interval 1 day) as click_date
union all
SELECT date_sub(curdate(), interval 2 day) as click_date
union all
SELECT date_sub(curdate(), interval 3 day) as click_date
union all
SELECT date_sub(curdate(), interval 4 day) as click_date
union all
SELECT date_sub(curdate(), interval 5 day) as click_date
union all
SELECT date_sub(curdate(), interval 6 day) as click_date
) a left join (
select date(sendtime) as datetime, count(*) as count
from t_logs
group by date(sendtime)
) b on a.click_date = b.datetime;
查询结果:
后台我使用的是springboot+ssm框架,
因为返回多条数据,就返回list。
mybatis sql
我发现返回结果却是为空
解决:当resulttype改为hashmap时,返回为空的问题完美解决。
截图返回的部分数据
至于为什么是hashmap,我也不是特别清楚。大概是这样,
返回值是HashMap类型,可以理解为动态的创建了一个HashMap集合,以键值对的形式保存从数据库里的返回值,map.put(“ID”,xxx); map.put(“NAME”,xxx); map.put(“COUNT”,xxx);
特此记录,供以后参考
—– 笔者水平有限,如有不严谨的地方,请指教必改。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143403.html