连接数据库并把数据结果展示在Echarts上(JSP展示),以及遇到的问题
最终效果图(从数据库查询出来):这边是宽度设置的原因,所以有些日期没有显示出来,后面再改改就好了,不碍事。按时间查询本周:数据库里面的数据是这样的:我这边犯了一个错误,导致一步错步步错和以前一样,我新建一张表的时候,就会新建一个bean,把这张表的字段都加上,这边总共有四个字段。然后,我惯性思维,犯傻了,如下图:然后我一直以为是dao写错了,没注意到一开始就...
·
最终效果图(从数据库查询出来):这边是宽度设置的原因,所以有些日期没有显示出来,后面再改改就好了,不碍事。
按时间查询本周:
数据库里面的数据是这样的:
我这边犯了一个错误,导致一步错步步错
和以前一样,我新建一张表的时候,就会新建一个bean,把这张表的字段都加上,这边总共有四个字段。
然后,我惯性思维,犯傻了,如下图:
然后我一直以为是dao写错了,没注意到一开始就错了,因为Echarts的数据就两个,一个是横向的数据,一个是纵向的数据,所以这样定义,一开始就是错的,bean写错了,dao实现类也写错了。
所以,
我改了改bean,
dao层:
接口:
实现类:
分享一下查询本周的sql语句:
------查询最近一周日期---------
SELECT TO_CHAR((trunc(sysdate, 'iw')) + ROWNUM - 1, 'yyyy-MM-dd') as time_date FROM DUAL
CONNECT BY ROWNUM <= 7;
实现类的SQL语句:这边的DECODE函数的功能就相当于JS中的三目运算,(LOG_COUNT==NULL? 0 : LOG_COUNT)
SELECT X.TIME_DATE,DECODE(LOG_COUNT,NULL,0,LOG_COUNT) COUNT FROM
(SELECT TO_CHAR((TRUNC(SYSDATE,'IW'))+ROWNUM-1,'YYYY-MM-DD') AS TIME_DATE FROM DUAL CONNECT BY ROWNUM <=7 ) X
LEFT JOIN ( SELECT A.D,COUNT(*) LOG_COUNT FROM (SELECT TRUNC(LOG_CTIME,'DD') D FROM TEXT_LOG_INF
WHERE LOG_CTIME >= TRUNC(SYSDATE,'D')+1 AND LOG_CTIME < TRUNC(SYSDATE,'D')+8) A GROUP BY A.D ) Y
ON X.TIME_DATE=TO_CHAR(Y.D,'YYYY-MM-DD');
只要查询出日期和数量,所以bean中只要定义两个字段,dao实现类中也只要查询出两个字段
service层:
接口:
实现类:
在Servlet中做业务逻辑处理:
private void queryLogByTime(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
Log log=new Log();
LogService logService=(LogService)ServiceFactory.getServiceImpl(LogService.class.getName());
List<Log> logList=logService.queryAllLogByTime(log);
request.setAttribute("logList", logList);
request.getRequestDispatcher("/admin/log/log_time.jsp").forward(request, response);
}
然后就把按时间查询本周的日志以图表(Echarts)的形式显示出来。
更多推荐
已为社区贡献1条内容
所有评论(0)