echarts通过使用jsp和serlvet访问数据库中的信息并进行绘图

echarts通过使用jsp和serlvet访问数据库中的信息并进行绘图



前言

`
使用echarts作图,但是想要连接数据库,不会使用node.js的菜鸡程序员不得不使用javaweb进行传输数据。
这边写的使用就简略说一下不重要的过程,着重说一下如何传输数据吧
技术要求:
Javaweb
MySQL
echarts
JavaScript(html应该不用说吧)


1,创建数据库

先随便创建一个数据库表存放数据,我们将使用这些数据来进行echarts的数据可视化
在这里插入图片描述

二、使用步骤

1.写出Javaweb三层架构,引入依赖项

在这里插入图片描述
这边是实体类的描述
在这里插入图片描述

2.编写selvert

代码如下(示例):

package com.example.spark_echarts.web;

import com.example.spark_echarts.domain.behavior_signup_num;
import com.example.spark_echarts.service.Ibehavior_signup;
import com.example.spark_echarts.service.implservice.impl_behaviorsignup;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet(name = "signupServlet", value = "/signupServlet")
public class signupServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Ibehavior_signup ibehavior_signup = new impl_behaviorsignup();
        List<behavior_signup_num> signup = ibehavior_signup.getall();
        request.setAttribute("signup",signup);
        request.getRequestDispatcher("WEB-INF/page/bahevior_signup.jsp").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

3.编写jsp页面并引入echarts

这个是echarts官网上的示例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.js"></script>
  </head>
  <body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));

      // 指定图表的配置项和数据
      var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>
</html>

4.对selvert中传输的数据进行处理存储

其中用到了一点JSTL的知识

  var user_Bebavior = new Array()
    var index = 0
    <c:forEach items="${signup}" var = "bsignup">
    user_Bebavior[index++]="${bsignup.ehavior}"
    </c:forEach>

    var user_Bnumber = new Array()
    var index = 0
    <c:forEach items="${signup}" var = "bsignup">
    user_Bnumber[index++]=${bsignup.number}
    </c:forEach>

5.对页面代码进行修改

<%--
  Created by IntelliJ IDEA.
  User: hanlx
  Date: 2023/6/3
  Time: 18:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <script src="./js/echarts.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>time</title>
</head>
<body>
<h1>hello world</h1>
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">


    //    private Date Bdate;
    //    private int Bnumber;

    var user_Bebavior = new Array()
    var index = 0
    <c:forEach items="${signup}" var = "bsignup">
    user_Bebavior[index++]="${bsignup.ehavior}"
    </c:forEach>

    var user_Bnumber = new Array()
    var index = 0
    <c:forEach items="${signup}" var = "bsignup">
    user_Bnumber[index++]=${bsignup.number}
    </c:forEach>

    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

    // 指定图表的配置项和数据
    var option = {
        title: {
            text: '行动使用人数'
        },
        tooltip: {},
        legend: {
            data: ['人数']
        },
        xAxis: {
            data: user_Bebavior
        },
        yAxis: {},
        series: [
            {
                name: '人数',
                type: 'bar',
                data: user_Bnumber
            }
        ]
    };

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>
</body>
</html>


6.一个会随着数据库内容变化的表格就出现了

在这里插入图片描述


JSP 使用 Servlet 向 MySQL 数据库添加数据,需要进行以下步骤: 1. 创建一个表单,用户可以在表单输入数据。 2. 创建一个 Servlet,用于处理表单提交的数据。 3. 在 Servlet 获取表单数据,并将其插入到 MySQL 数据库。 下面是一个示例代码,可以将表单的数据插入到 MySQL 数据库: 1. JSP 页面代码: ```html <form action="AddDataServlet" method="post"> <label for="name">Name:</label> <input type="text" id="name" name="name"><br><br> <label for="age">Age:</label> <input type="text" id="age" name="age"><br><br> <input type="submit" value="Submit"> </form> ``` 2. Servlet 代码: ```java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class AddDataServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取表单数据 String name = request.getParameter("name"); String age = request.getParameter("age"); // 连接 MySQL 数据库 Connection conn = null; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "root"; try { // 加载 MySQL 驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 conn = DriverManager.getConnection(url, user, password); // 插入数据 String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, name); statement.setString(2, age); statement.executeUpdate(); // 返回成功信息 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Data added successfully!</h1>"); out.println("</body>"); out.println("</html>"); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (conn != null) { conn.close(); } } catch (SQLException se) { se.printStackTrace(); } } } } ``` 在上面的代码,我们使用了 PreparedStatement 来防止 SQL 注入攻击,同时也使用了 try-catch-finally 块来确保数据库连接在使用完后被正确关闭。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值