出来实习也将近两个月了,感觉自己在这两个月里也收获了许多新的知识与经验,当然,说这些就有点扯远了,所以还是回到我们的主题,谈技术。
小编再最近实战学习中发现一个问题,那就是现在许多博客里有许多关于各个细节知识点的说明讲解,但是综合各个知识点用实战讲解的博客就比较少了,当然,在一个方面做精做细是大势所趋,有利于人们有针对的查找需要的知识,快速解决问题,但对于许多小白来说,一个完整的实战教程对他们来说更加重要。所以小编把平时实战开发的一些精华写下来与大家分享,也有助于自己梳理知识。好了,废话不多说,进入主题。
小编最近在处理一个首页柱状图的开发,大概类似于这样
对于这个柱状图中的各个月份数值,是需要从后台获取。这里我们也就主要讲解这个数据的传递过程。
首先来写sql语句,这里我想要根据年份和月份来查询一个月中所处理的事件,但数据库中时间保存是年月日夹杂在一起的,于是问题就来了,怎么从一个字段里取出几个独立的数据来进行查询,其实比较简单,那就是嵌套查询,一个查询不行,两个不就好了吗。
"select count(*) from "+"(select t.id ,to_char(t.shijian,'MM')as month from test t where to_char(t.shijian,'MM')="+month
+"and to_char(t.shijian,'yyyy')="+year+")";
通过下面语句返回查询结果
Long monthCount = super.getCountSqlQeury(sql,null);
接着是controll层和前台
List monthlist = new ArrayList<>();
for(int i =1;i<=12;i++){
Long monthcount = queryCountService.GetMonthCount(String.valueOf(i));
monthlist.add(monthcount);
}
model.addAttribute("monthList",monthlist);
${id.index+1}月
${monthList}%
controller层主要是把数据库查询出的每个月份处理数量一个一个塞进List集合里,然后在前台用Jstl的forEach遍历这个集合,在用EL表达式取出每个值。
${id.index+1}月
${monthList.precent}%
Long count = queryCountService.GetCount();
List