zoukankan      html  css  js  c++  java
  • 课堂练习-全国疫情统计1

    第一阶段目标:

    1.导入全国疫情数据库payiqing.sql(MySQL数据库)。

    2.可以按照时期查询各个省市的疫情统计表格。

    3.以折线图或柱状图展示某天的全国各省的确诊人数。

    运行结果:

    本次实验主要通过在https://www.echartsjs.com/zh/index.html网址中的各种图标代码的学习,在引用从该网址上的下载好的echarts.min.js,在调用后使用,其余的与以前所学相同。

    Bean层代码:

    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 SetId(int id)
        {
            this.id=id;
        }
        public String getDate() {
            return Date;
        }
        public void SetDate(String Date) {
            this.Date = Date;
        }
        public String getProvince() {
            return Province;
        }
        public void SetProvince(String Province) {
            this.Province = Province;
        }
        public String getCity() {
            return City;
        }
        public void SetCity(String City) {
            this.City = City;
        }
        public String getConfirmed_num() {
            return Confirmed_num;
        }
        public void SetConfirmed_num(String Confirmed_num) {
            this.Confirmed_num = Confirmed_num;
        }
        public String getYisi_num() {
            return Yisi_num;
        }
        public void SetYisi_num(String Yisi_num) {
            this.Yisi_num = Yisi_num;
        }
        public String getCured_num() {
            return Cured_num;
        }
        public void SetCured_num(String Cured_num) {
            this.Cured_num = Cured_num;
        }
        public String getDead_num() {
            return Dead_num;
        }
        public void SetDead_num(String Dead_num) {
            this.Dead_num = Dead_num;
        }
        public String getCode() {
            return Code;
        }
        public void SetCode(String Code) {
            this.Code = Code;
        }
        
        public Data(int 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 Data(int 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 Data(int 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 Data(String 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 Data(int id ,String Date,String Province,String Code) {
            this.id=id;
            this.Date = Date;
            this.Province = Province;
            this.Code = Code;
        }
        
    }

    Dao层代码:

    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> dlist(String sDate,String eDate) { // 查询所有信息
            String begin="";
            String []s=sDate.split("-");
            for(int i=0;i<s.length;i++)
            {
                begin+=s[i].toString();
            }
            String end="";
            String []e=eDate.split("-");
            for(int i=0;i<e.length;i++)
            {
                end+=e[i].toString();
            }
            int bg=Integer.valueOf(begin);
            int ed=Integer.valueOf(end);
            List<Data> list = new ArrayList<Data>(); // 创建集合
            Connection conn = Util.getConn();
            String sql = "select * from info "; // SQL查询语句
            try {
                PreparedStatement pst = conn.prepareStatement(sql);
                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.substring(0, 10);
                    String []d=date.split("-");
                    for(int i=0;i<d.length;i++)
                    {
                        num+=d[i].toString();
                    }
                    int k=Integer.valueOf(num);
                    if(k>=bg&&k<=ed) {
                        data = new Data(id,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                    }
                    list.add(data);
                }
                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.prepareStatement(sql);
                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");
                    if(index<=32) {
                    data = new Data(id,Date,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                    list.add(data);
                    }
                }
                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.executeQuery(sql);
                    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 Data(id,Date,Province,City,Confirmed_num,Yisi_num,Cured_num,Dead_num,Code);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    Util.close(rs, state, conn);
                }
                return data;
            }
    }

    Jdbc层代码:

    package com.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具
     * @author YP
     */
    
    public class Util {
        public static String db_url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
        public static String db_user = "root";
        public static String db_pass = "root";
        public static Connection getConn () {
            Connection conn = null;    
            try {
                Class.forName("com.mysql.jdbc.Driver");//加载驱动
                conn = DriverManager.getConnection(db_url, db_user, db_pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
        
        /**
         * 关闭连接
         * @param state
         * @param conn
         */
        
        public static void close (Statement state, Connection conn) {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close (ResultSet rs, Statement state, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    Servlet层代码:

    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 doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
        }
        
        protected void doPost(HttpServletRequest 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").forward(req, resp);
        }
    }
    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 doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
        }
    
        protected void doPost(HttpServletRequest 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.dlist(sDate, eDate);
            req.setAttribute("list",list); 
            req.getRequestDispatcher("AllDataServlet").forward(req, resp);
        }
    }

    HTML界面代码:

    <%@ 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">
        <script src="echarts.min.js"></script>
    <title>显示</title>
    </head>
    
    <body >
    <br>
    <h1>疫情统计表</h1>
    <div id="main" style="height:400px"></div>
    <div id="main2" style="height:600px;"></div>
    <div>
           开始日期:<input type="date" id="btime" name="btime">(日期格式xxxx-xx-xx)<br />
           截止日期:<input type="date" id="etime" name="etime">
            <button type="button" class="btn btn-info" onclick="checkfind()">查询</button>&nbsp;&nbsp;&nbsp;&nbsp;
            <br><br>
        <table >
            <tr>
                <td>编号</td>
                <td>省份</td>
                <td>地区</td>
                <td>确诊人数</td>
                <td>疑似人数</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.init(document.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.setOption(option);
    var myChart2=echarts.init(document.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.setOption(option);
    </script>
    <script type="text/javascript">
    function checkfind()
    {
        var stime=document.getElementById("btime").value;
        var etime=document.getElementById("etime").value;
        if(btime==""&&etime=="")
        {
            alert("请输入时间!");
            return ;
        }
        else
        {
            window.location.href = "ShowDataServlet?name="+name+"&stime="+stime+"&etime="+etime;
        }
    }
    </script>
    </body>
    </html>
  • 相关阅读:
    【C++】虚函数
    ZF-net
    bzoj1061【NOI2008】志愿者招募
    highcharts 绘制图标的JAVASCRIPT 类库 收藏
    C语言中的const,free使用方法具体解释
    Java Transaction Management
    从有序数组中查找某个值 low_bound
    [华为机试练习题]35.找零钱
    1.9算法入门之进制转换
    uboot移植rtc
  • 原文地址:https://www.cnblogs.com/zql-42/p/12511194.html
Copyright © 2011-2022 走看看