Spring Boot +Echarts 组合图表演示

文章目录

一、提出任务

  • 利用后端 Spring Boot 查询班级表数据,在使用Echarts 绘制各班人数柱状图。

(一)班级数据

《Spring Boot +Echarts 组合图表演示》

(二)运行效果

二、完成任务

(一)创建数据库与表

1、创建数据库

  • 创建数据库 – bootdb
CREATE DATABASE bootdb;
  • 执行命令后如下图所示
    《Spring Boot +Echarts 组合图表演示》

2、创建数据表

  • 创建表结构 t_class
CREATE TABLE `t_class`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `class` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
  `boys` int(11) DEFAULT NULL,
  `girls` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8;
  • 执行命令后如下图所示
    《Spring Boot +Echarts 组合图表演示》
  • 插入表记录
INSERT INTO `t_class` VALUES (1, '2020级人智1班', 26, 18);
INSERT INTO `t_class` VALUES (2, '2020级软件2班', 17, 20);
INSERT INTO `t_class` VALUES (3, '2020级大数据1班', 24, 30);
INSERT INTO `t_class` VALUES (4, '2020级计应2班', 21, 24);

《Spring Boot +Echarts 组合图表演示》

  • 查看班级表记录

《Spring Boot +Echarts 组合图表演示》

(二)创建Spring Boot项目

  • 利用Spring lnitializr创建Spring Boot项目 -EchartsDemo
    《Spring Boot +Echarts 组合图表演示》
  • 设置相关项
    《Spring Boot +Echarts 组合图表演示》
  • 添加依赖
    《Spring Boot +Echarts 组合图表演示》
  • 设置项目名称与保存位置
    《Spring Boot +Echarts 组合图表演示》
  • 单击【Finish】按钮
    《Spring Boot +Echarts 组合图表演示》

(三)创建班级实体类

  • net.huawei.echarts包里创建bean子包,在子包里创建Clazz
    《Spring Boot +Echarts 组合图表演示》
package net.cb.echarts.echartsdemo.bean;
/** * 功能:班级实体类 * 作者:陈标 * 日期:2022年06月16日 */
public class Clazz { 
    private int id;
    private String clazz;
    private int boys;
    private int girls;

    public int getId() { 
        return id;
    }

    public void setId(int id) { 
        this.id = id;
    }

    public String getClazz() { 
        return clazz;
    }

    public void setClazz(String clazz) { 
        this.clazz = clazz;
    }

    public int getBoys() { 
        return boys;
    }

    public void setBoys(int boys) { 
        this.boys = boys;
    }

    public int getGirls() { 
        return girls;
    }

    public void setGirls(int girls) { 
        this.girls = girls;
    }

    @Override
    public String toString() { 
        return "Clazz{" +
                "id=" + id +
                ", clazz='" + clazz + '\'' +
                ", boys=" + boys +
                ", girls=" + girls +
                '}';
    }
}

(四)创建班级映射器接口

  • net.cb.echarts包里创建mapper子包,在子包里创建ClazzMapper接口
    《Spring Boot +Echarts 组合图表演示》
  • 源码如下
package net.cb.echarts.echartsdemo.mapper;

import net.cb.echarts.echartsdemo.bean.Clazz;
import org.apache.ibatis.annotations.Mapper;


import java.util.List;

@Mapper
public interface ClazzMapper { 
    List<Clazz> findAll();
}

(五)创建班级映射器配置文件

  • resources里创建mapper目录,在里面创建ClazzMapper.xml
    《Spring Boot +Echarts 组合图表演示》
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="net.huawei.echarts.mapper.ClazzMapper">
    <!--定义结果映射,因为表字段名与实体属性名不完全一致-->
    <resultMap id="clazzMap" type="net.huawei.echarts.bean.Clazz">
        <result property="id" column="id"/>
        <result property="clazz" column="class"/>
        <result property="boys" column="boys"/>
        <result property="girls" column="girls"/>
    </resultMap>

    <select id="findAll" resultMap="clazzMap">
        SELECT * FROM t_class;
    </select>
</mapper>

(六)创建班级服务类

  • net.cb.echarts.echartsdemo包里创建service子包,在子包里创建ClazzService
    《Spring Boot +Echarts 组合图表演示》
package net.cb.echarts.echartsdemo.sevice;

import net.cb.echarts.echartsdemo.bean.Clazz;
import net.cb.echarts.echartsdemo.mapper.ClazzMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/** * 功能:班级服务类 * 作者:陈标 * 日期:2022年06月15日 */
@Service
public class ClazzService { 
    @Autowired(required = false)
    private ClazzMapper clazzMapper;

    public List<Clazz> findAll() { 
        return clazzMapper.findAll();
    }
}

(七)创建班级控制器

net.cb.echarts.echartsdemo包里创建controller子包,在子包里创建ClazzController
《Spring Boot +Echarts 组合图表演示》

package net.cb.echarts.echartsdemo.controller;

import net.cb.echarts.echartsdemo.bean.Clazz;
import net.cb.echarts.echartsdemo.sevice.ClazzService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/** * 功能:班级控制器 * 作者:陈标 * 日期:2022年06月16日 */
@Controller
public class ClazzController { 
    @Autowired
    private ClazzService clazzService;

    @GetMapping("/")
    public String index() { 
        return "index";
    }

    @RequestMapping(value = "/getAll", produces = "application/json; charset=utf-8")
    @ResponseBody
    public List<Clazz> getAll() { 
        List<Clazz> clazzes = clazzService.findAll();
        return clazzes;
    }
}

(八)添加ECharts和jQuery脚本

  • static里创建js目录,添加echarts.min.jsjquery.min.js
    《Spring Boot +Echarts 组合图表演示》

(九)添加Druid起步依赖

  • pom.xml文件里添加Druid针对Spring Boot的起步依赖
    《Spring Boot +Echarts 组合图表演示》
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.2.11</version>
</dependency>

(十)修改应用属性文件

  • application.properties更名为application.yaml
    《Spring Boot +Echarts 组合图表演示》
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/bootdb?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root

    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 20
      max-active: 100
      min-idle: 10

mybatis:
  mapper-locations: classpath:mapper/*.xml type-aliases-package: net.huawei.echarts.bean server: port: 8888 

(十一)创建页面可视化数据

  • templates目录里创建index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2020级各班人数柱状图</title>
    <script src="js/jquery.min.js"></script>
    <script src="js/echarts.min.js"></script>
    <style> .box {  width: 600px; height: 400px; border: 1px solid cornflowerblue; } </style>
</head>
<body>
<input type="button" value="显示柱状图" class="btnShowBar"/>
<hr/>
<div class="box"></div>
<script> // 获取box元素 const box = document.getElementsByClassName("box")[0]; // 获取btnShowBar元素 let btnShowBar = document.getElementsByClassName("btnShowBar")[0], boy_list, class_list, girl_list; // 定义按钮单击事件 btnShowBar.onclick = function () {  // 获取后台返回的JSON数据 $.get('/getAll', function (data) {  // 定义三个数组 class_list = []; boy_list = []; girl_list = []; // 将json数据写入数组 for (var i = 0; i < data.length; i++) {  class_list.push(data[i].clazz); boy_list.push(data[i].boys); girl_list.push(data[i].girls); } // 1. 初始化ECharts var my_box = echarts.init(box); // 2. 进行参数配置 var option = {  // 标题 title: {  text: "20级各班人数柱状图", x: "center", y: "top", textAlign: "left", textStyle: {  fontFamily: "楷体", fontSize: 35, textStyle: "bold" } }, // 图例 legend: {  left: "right", orient: "vertical" }, // x轴数据 xAxis: {  data: class_list }, // y轴数据 yAxis: { }, // 数据信息 series: [ {  name: "男生人数", type: "bar", data: boy_list, itemStyle: {  normal: {  color: '#0000aa' } } }, {  name: "女生人数", type: "bar", data: girl_list, itemStyle: {  normal: {  color: '#aa0000' } } } ] } // 3. 可视化呈现 my_box.setOption(option); }); } </script>
</body>
</html>

《Spring Boot +Echarts 组合图表演示》

(十二)启动应用,查看结果

  • 启动程序(端口号:8888)

《Spring Boot +Echarts 组合图表演示》

  • 访问http://localhost:8888即可
    原文作者:Yushijuj
    原文地址: https://blog.csdn.net/CITTB/article/details/125308798
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞