全国疫情统计可视化地图(1)

第一阶段运行结果

 

 

  主要是根据 https://www.echartsjs.com/zh/index.html  上提供的表格模板。引入下载好的 echarts.min.js。然后其他的思路和平时的一样。

将模板中的数据改为自己从servlet中传来的数据即可。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page import="com.bean.Data" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<meta charset="UTF-8">
     <link type="text/css" rel="stylesheet" href="css/style.css">

    <script src="echarts.min.js"></script>
    <script src="jquery-1.11.3.min.js"></script>
    <script src="bootstrap.js"></script>
<title>显示</title>

</head>

<body >
<br>
<h1>疫情统计表</h1>
<div id="main" style="height:400px"></div>
<div id="main2" style="height:600px;"></div>
<div>
<span>
        日期<input class="slide-up " type="date" id="btime" name="btime">-<input class="slide-up " type="date" id="etime" name="etime">
        <button type="button" class="btn btn-info" onclick="checkfind)">查询</button>&nbsp;&nbsp;&nbsp;&nbsp;
 </span><br><br>
    <table id="gradient-style" style="background-color:blue; 100%; height:100%">

        <tr>

            <td>编号</td>

            <td>省份</td>

            <td>地区</td>
            
            <td>确诊人数</td>
            
            <td>YiSi人数</td>
            
            <td>治愈人数</td>

            <td>死亡人数</td>
            
            <td>总人数</td>
        </tr>

        <c:forEach items="${list}" var="item">

            <tr>

                <td>${item.id }</td>

                <td>${item.province }</td>

                <td>${item.city }</td>
                
                <td>${item.confirmed_num }</td>
                
                <td>${item.yisi_num }</td>
                
                <td>${item.cured_num}</td>
                
                <td>${item.dead_num }</td>
                
                <td>${item.code }</td>

            </tr>

        </c:forEach>

    </table>
    </div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.initdocument.getElementById'main'));

var arr = new Array);
var index = 0;
<c:forEach items="${pres}" var="goods">
    arr[index++] = ${goods.confirmed_num};
    
</c:forEach>

// 指定图表的配置项和数据
var option = {
    title: {
        text: '全国疫情统计柱状图)'
    },
    tooltip: {
        show: true
    },
    legend: {
        data:['患者数']
    },
    xAxis : [
        {
            type : 'category',
            
            axisLabel:{  
                 interval:0,
                 rotate:40,
                  },
            data : [
                <c:forEach items="${pres}" var="g">
                ["${g.province}"],
                </c:forEach>
            ]
        }
    ],
    yAxis : [
        {
            type : 'value'
        }
    ],
    series : [
        {
            name:'患者数',
            type:'bar',
            data: arr
        }
    ]
};

// 使用刚指定的配置项和数据显示图表
myChart.setOptionoption);

var myChart2=echarts.initdocument.getElementById"main2"));

var option={

  title:{
    text:'全国疫情统计折线图)'
  },

  toolbox:{
      show:true,
      feature:{
          saveAsImage:{
              show:true
          }
      }
  },

  legend:{
      data:['患者数']
  },
 
  xAxis : [
      {
          type : 'category',
          axisLabel:{  
               interval:0, 
               rotate:40,
                },
          data : [
              <c:forEach items="${pres}" var="g">
              ["${g.province}"],
              </c:forEach>
          ]
      }
  ],

 yAxis : [
      {
          type : 'value'
      }
  ],

  series:[{
      name:'患者数',
      type:'line',
      data:arr,
      itemStyle:{
          normal:{
            label : {
            show: true
            },
            borderColor:'blue', 
            lineStyle:{                 
              5,  
              type:'solid'  
            }
          }
        }
  }]
};


//使用前面指定的配置项和数据项显示图表
myChart2.setOptionoption);

</script>
<script type="text/javascript">
function checkfind)
{
    var stime=document.getElementById"btime").value;
    var etime=document.getElementById"etime").value;
    ifbtime==""&&etime=="")
    {
        alert"请输入时间!");
        return ;
    }
    else
    {
        window.location.href = "ShowDataServlet?name="+name+"&stime="+stime+"&etime="+etime;
    }
}
</script>

</body>
</html>

HTML

package com.bean;

public class Data {
    private int id;
    private String Date;
    private String Province;
    private String City;
    private String Confirmed_num;
    private String Yisi_num;
    private String Cured_num;
    private String Dead_num;
    private String Code;

    public int getId) {
        return id;
    }
    public void SetIdint id)
    {
        this.id=id;
    }
    public String getDate) {
        return Date;
    }
    public void SetDateString Date) {
        this.Date = Date;
    }
    public String getProvince) {
        return Province;
    }
    public void SetProvinceString Province) {
        this.Province = Province;
    }
    public String getCity) {
        return City;
    }
    public void SetCityString City) {
        this.City = City;
    }
    public String getConfirmed_num) {
        return Confirmed_num;
    }
    public void SetConfirmed_numString Confirmed_num) {
        this.Confirmed_num = Confirmed_num;
    }
    public String getYisi_num) {
        return Yisi_num;
    }
    public void SetYisi_numString Yisi_num) {
        this.Yisi_num = Yisi_num;
    }
    public String getCured_num) {
        return Cured_num;
    }
    public void SetCured_numString Cured_num) {
        this.Cured_num = Cured_num;
    }
    public String getDead_num) {
        return Dead_num;
    }
    public void SetDead_numString Dead_num) {
        this.Dead_num = Dead_num;
    }
    public String getCode) {
        return Code;
    }
    public void SetCodeString Code) {
        this.Code = Code;
    }
    
    public Dataint id,String Date,String Province,String City,String Confirmed_num,String Yisi_num,String Cured_num,String Dead_num,String Code) {
        this.id=id;
        this.Date = Date;
        this.Province = Province;
        this.City = City;
        this.Confirmed_num = Confirmed_num;
        this.Yisi_num = Yisi_num;
        this.Cured_num = Cured_num;
        this.Dead_num = Dead_num;
        this.Code = Code;
    }
    public Dataint id,String Province,String City,String Confirmed_num,String Yisi_num,String Cured_num,String Dead_num,String Code) {
        this.id=id;
        this.Province = Province;
        this.City = City;
        this.Confirmed_num = Confirmed_num;
        this.Yisi_num = Yisi_num;
        this.Cured_num = Cured_num;
        this.Dead_num = Dead_num;
        this.Code = Code;
    }
    public Dataint id,String Date,String Province,String Confirmed_num,String Cured_num,String Dead_num,String Code) {
        this.id=id;
        this.Date = Date;
        this.Province = Province;
        this.Confirmed_num = Confirmed_num;
        this.Cured_num = Cured_num;
        this.Dead_num = Dead_num;
        this.Code = Code;
    }
    public DataString Date,String Province,String Confirmed_num,String Cured_num,String Dead_num,String Code) {
        this.Date = Date;
        this.Province = Province;
        this.Confirmed_num = Confirmed_num;
        this.Cured_num = Cured_num;
        this.Dead_num = Dead_num;
        this.Code = Code;
    }
    public Dataint id ,String Date,String Province,String Code) {
        this.id=id;
        this.Date = Date;
        this.Province = Province;
        this.Code = Code;
    }
    
}

com.bean

    这里有一点就是,因为在HTML里 input中datatime类型在浏览器中并没有日历的插件,容易导致日期格式错误。但是数据库中的日期格式为xx-xx-xx xx:xx:xx 。不易进行查找比较。所以在dao层里,直接将输入的时间转化成int类型进行比较。

package com.dao;



import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.bean.*;
import com.jdbc.Util;


public class Dao {
    
    public List<Data> dlistString sDate,String eDate) { // 查询所有信息

        String begin="";
        String []s=sDate.split"-");
        forint i=0;i<s.length;i++)
            begin+=s[i].toString);
        
        String end="";
        String []e=eDate.split"-");
        forint i=0;i<e.length;i++)
            end+=e[i].toString);
        
        int bg=Integer.valueOfbegin);
        int ed=Integer.valueOfend);
        
        List<Data> list = new ArrayList<Data>); // 创建集合
        Connection conn = Util.getConn);
        String sql = "select * from info "; // SQL查询语句

        try {

            PreparedStatement pst = conn.prepareStatementsql);

            ResultSet rs = pst.executeQuery);
            
            Data data = null;
            
            while rs.next)) {


                int id= rs.getInt"id");;
                
                String Province = rs.getString"Province");
                
                String Confirmed_num = rs.getString"Confirmed_num");
                
                String Yisi_num = rs.getString"Yisi_num");
                
                String Cured_num = rs.getString"Cured_num");
                
                String Dead_num = rs.getString"Dead_num");
                
                String Code = rs.getString"Code");
                
                String City = rs.getString"City");
                
                String Date=rs.getString"Date");
                
                String num="";
                String date=Date.substring0, 10);
                String []d=date.split"-");
                forint i=0;i<d.length;i++)
                    {
                        num+=d[i].toString);
                    }
                int k=Integer.valueOfnum);
                
                ifk>=bg&&k<=ed) {
                    data = new Dataid,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                }
                list.adddata);

            }

            rs.close); // 关闭

            pst.close); // 关闭

        } catch SQLException e1) {

            e1.printStackTrace); // 抛出异常

        }

        return list; // 返回一个集合

    }
    public List<Data> pres) { // 查询所有信息

        List<Data> list = new ArrayList<Data>);
        Connection conn = Util.getConn);
        String sql = "select * from info"; // SQL查询语句
        
        try {

            PreparedStatement pst = conn.prepareStatementsql);

            ResultSet rs = pst.executeQuery);
            
            Data data = null;
            
            int index=0;
            while rs.next)) {

                index++;
                
                int id= rs.getInt"id");;
                
                String Province = rs.getString"Province");
                
                String Confirmed_num = rs.getString"Confirmed_num");
                
                String Yisi_num = rs.getString"Yisi_num");
                
                String Cured_num = rs.getString"Cured_num");
                
                String Dead_num = rs.getString"Dead_num");
                
                String Code = rs.getString"Code");
                
                String City = rs.getString"City");
                
                String Date=rs.getString"Date");
                
                ifindex<=32) {
                    data = new Dataid,Date,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                    list.adddata);
                }
                
                
               

            }

            rs.close); // 关闭

            pst.close); // 关闭

        } catch SQLException e1) {

            e1.printStackTrace); // 抛出异常

        }

        return list; // 返回一个集合

    }
    
    public Data SelectAll) { // 根据ID进行查询
        String sql = "select * from info ";
        Connection conn = Util.getConn);
            Statement state = null;
            ResultSet rs = null;
            Data data = null;
            try {
                state = conn.createStatement);
                rs = state.executeQuerysql);
                while rs.next)) {

                    int id= rs.getInt"id");;
                    
                    String Province = rs.getString"Province");
                    
                    String Confirmed_num = rs.getString"Confirmed_num");
                    
                    String Yisi_num = rs.getString"Yisi_num");
                    
                    String Cured_num = rs.getString"Cured_num");
                    
                    String Dead_num = rs.getString"Dead_num");
                    
                    String Code = rs.getString"Code");
                    
                    String City = rs.getString"City");
                    
                    String Date=rs.getString"Date");
                    
                        data = new Dataid,Date,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                }
            } catch Exception e) {
                e.printStackTrace);
            } finally {
                Util.closers, state, conn);
            }
            return data;
        }
    
    
    
}

com.dao

package com.servlet;



import java.io.IOException;
import java.util.ArrayList;
import java.util.List;



import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.dao.Dao;
import com.bean.*;


@WebServlet"/ShowDataServlet")
public class ShowDataServlet extends HttpServlet { // 显示全部数据



    private static final long serialVersionUID = 1L;



    protected void doGetHttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        this.doPostreq, resp);

    }



    protected void doPostHttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding"utf-8");
        String sDate=req.getParameter"stime");
        String eDate=req.getParameter"etime");
        Dao dao = new Dao);
        List<Data> list=null;
        list=dao.dlistsDate, eDate);
        req.setAttribute"list",list); 
        req.getRequestDispatcher"AllDataServlet").forwardreq, resp);
        


    }

}

ShowDateServlet

package com.servlet;




import java.io.IOException;

import java.util.List;

 

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.bean.Data;

import com.dao.Dao;


 
@WebServlet"/AllDataServlet")
public class AllDataServlet extends HttpServlet { // 显示全部数据

 

    private static final long serialVersionUID = 1L;

 

    protected void doGetHttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        this.doPostreq, resp);

    }

 

    protected void doPostHttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding"utf-8");
        
        Dao dao = new Dao);
        List<Data> pres=null;
        pres=dao.pres);
        req.setAttribute"pres",pres);
        
        req.getRequestDispatcher"ShowData.jsp").forwardreq, resp);

    }

}

AllDateServlet

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注