服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

2022-11-15 11:35*猪耳朵* Java教程

本文主要介绍了SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

通过从数据库获取数据转为JSON数据,返回前端界面实现数据可视化。

数据可视化测试

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

 

实现过程

1. pom.xml

pom.xml引入(仅为本文示例需要,其他依赖自行导入)

<!--Thymeleaf整合security-->
<dependency>
  <groupId>org.thymeleaf.extras</groupId>
  <artifactId>thymeleaf-extras-springsecurity5</artifactId>
  <version>3.0.4.RELEASE</version>
</dependency>
<!--导入lombok小辣椒驱动依赖,用来生成get/set方法依赖-->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <!--<optional>true</optional>-->
  <version>1.18.12</version>
  <scope>provided</scope><!--自动生成有参无参构造-->
</dependency>
<dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.4</version>
</dependency>

2. 后端程序示例

1. Controller层

package com.dvms.controller;

/*
*文件名: DataviewController
*创建者: CJW
*创建时间:2022/4/15 20:33
*描述: TODO
*/


import com.alibaba.fastjson.JSON;
import com.dvms.service.ParamoduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;

@Controller
public class DataviewController {

  @Autowired
  private ParamoduleService paramoduleService;

  // 查出
  @RequestMapping("/data/todatashow")
  public String finddata(ModelMap model){
  
      ArrayList<String> dataname = paramoduleService.finddata();
      ArrayList<Integer> datanum = paramoduleService.finddatanum();

      String datanameJson = JSON.toJSONString(dataname);
      String datanumJson = JSON.toJSONString(datanum);

      System.out.println(datanameJson);
      System.out.println(datanumJson);

      model.put("datanameJson",datanameJson);
      model.put("datanumJson",datanumJson);


      return "ems/charts";
  }
}

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

2. Service层

package com.dvms.service;

import com.dvms.entity.Record;
import com.dvms.entity.Video;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/*
*文件名: ParamoduleService
*创建者: CJW
*创建时间:2022/1/15 10:54
*描述: TODO
*/
public interface ParamoduleService {

  ArrayList<String> finddata();

  ArrayList<Integer> finddatanum();
}

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

3. ServiceImpl层

package com.dvms.service.Impl;

import com.dvms.dao.ParamoduleDao;
import com.dvms.entity.Record;
import com.dvms.entity.Video;
import com.dvms.service.ParamoduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/*
*文件名: ParamoduleServiceImpl
*创建者: CJW
*创建时间:2022/1/15 10:55
*描述: TODO
*/
@Service
public class ParamoduleServiceImpl implements ParamoduleService {

  @Autowired
  private ParamoduleDao paramoduleDao;
  //查出数据名
  @Override
  public ArrayList<String> finddata(){ return paramoduleDao.finddata(); }
  //查出数据数量
  @Override
  public ArrayList<Integer> finddatanum(){ return paramoduleDao.finddatanum(); }
}

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

4. entity层

package com.dvms.entity;

/*
*文件名: Data
*创建者: CJW
*创建时间:2022/4/14 16:17
*描述: TODO
*/

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@lombok.Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true) //链式调用

public class Data {

  private String id;
  private String dataname;
  private Integer datanum;

}

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

5. dao(pojo)层

package com.dvms.dao;

import com.dvms.entity.Record;
import com.dvms.entity.Video;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/*
*文件名: ParamoduleDao
*创建者: CJW
*创建时间:2022/1/15 10:52
*描述: TODO
*/

@Repository
public interface ParamoduleDao {

   ArrayList<String> finddata();

   ArrayList<Integer> finddatanum();

}

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

6. daoMapper层

<?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="com.dvms.dao.ParamoduleDao">

  <!--查询数据名-->
  <select id="finddata" resultType="String">
      select dataname from data
  </select>

  <!--查询数据数量-->
  <select id="finddatanum" resultType="Integer">
      select datanum from data
  </select>
  
</mapper>

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

7. 数据库data表

SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例

3. 前端程序示例

前端引入:

	<script src="https://cdn.bootcss.com/echarts/4.6.0/echarts.min.js">
	<html lang="en" xmlns:th="http://www.thymeleaf.org"></script>

展示前端部分程序,主要是以下两句:

var datanum=[[${datanumJson}]]; // thymeleaf 获取后端参数方式

JSON.parse(dataname)  // JSON接收数据
		<div class="main">
			<!-- MAIN CONTENT -->
			<div class="main-content">
				<div class="container-fluid">
					<h3 class="page-title">数据可视化测试示例</h3>
					<div class="row">
						<div class="col-md-12">
							<div class="panel">
								<div class="panel-heading">
									<h3 class="panel-title">读取数据库数据可视化示例</h3>
                                  <div class="right">
                                      <button type="button" class="btn-toggle-collapse"><i class="lnr lnr-chevron-up"></i>
                                      </button>
                                      <button type="button" class="btn-remove"><i class="lnr lnr-cross"></i></button>
                                  </div>
								</div>
								<div class="panel-body">
									<!--<div id="demo-line-chart" class="ct-chart"></div>-->
									<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
								<div class="col-md-6" id="main" style="width: 600px;height:400px;">
                                  <script type="text/javascript" th:inline="javascript">

                                      //在js读取thymeleaf变量值
                                      var dataname=[[${datanameJson}]];
                                      var datanum=[[${datanumJson}]];


                                      // 基于准备好的dom,初始化echarts实例
                                      var myChart = echarts.init(document.getElementById('main'));
                                      // 指定图表的配置项和数据
                                      var option = {
                                          title: {
                                              text: '读取数据库数据可视化示例'
                                          },
                                          tooltip: {},
                                          legend: {
                                              data: ['数量']
                                          },
                                          xAxis: {
                                              data: JSON.parse(dataname)
                                          },
                                          yAxis: {},
                                          color:['#62d1de'],//在这里设置colorList,是一个数组,图片颜色会按顺序选取
                                          series: [
                                              {
                                                  name: '数量',
                                                  type: 'bar',
                                                  data: JSON.parse(datanum)
                                              }
                                          ]
                                      };


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

                              </div>

                              <div class="col-md-6" id="main1" style="width: 600px;height:400px;">

                                  <script type="text/javascript" th:inline="javascript">


                                      // 基于准备好的dom,初始化echarts实例
                                      var myChart1 = echarts.init(document.getElementById('main1'));
                                      option = {
                                          title: {
                                              text: '某站点用户访问来源',
                                              subtext: '纯属虚构',
                                              left: 'center'
                                          },
                                          tooltip: {
                                              trigger: 'item',
                                              formatter: '{a} <br/>{b} : {c} ({d}%)'
                                          },
                                          legend: {
                                              orient: 'vertical',
                                              left: 'left',
                                              data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
                                          },
                                          color:['#62d1de','#54d6b6','#a6db69','#ffd454','#ffa361','#d1d1d1'],//在这里设置colorList,是一个数组,图片颜色会按顺序选取
                                          series: [
                                              {
                                                  name: '访问来源',
                                                  type: 'pie',
                                                  radius: '55%',
                                                  center: ['50%', '60%'],
                                                  data: [
                                                      {value: 335, name: '直接访问'},
                                                      {value: 310, name: '邮件营销'},
                                                      {value: 234, name: '联盟广告'},
                                                      {value: 135, name: '视频广告'},
                                                      {value: 1548, name: '搜索引擎'}
                                                  ],
                                                  emphasis: {
                                                      itemStyle: {
                                                          shadowBlur: 10,
                                                          shadowOffsetX: 0,
                                                          shadowColor: 'rgba(0, 0, 0, 0.5)'
                                                      }
                                                  }
                                              }
                                          ]
                                      };

                                      // 使用刚指定的配置项和数据显示图表。
                                      myChart1.setOption(option);
                                  </script>
                              </div>
								</div>
                          </div>
							</div>
						</div>
								</div>
							</div>
						</div>
			<!-- END MAIN CONTENT -->
		</div>

到此这篇关于SpringBoot+thymeleaf+Echarts+Mysql 实现数据可视化读取的示例的文章就介绍到这了,更多相关SpringBoot可视化读取内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/cjw12581/article/details/124236688

延伸 · 阅读

精彩推荐
  • Java教程Maven插件的安装及使用

    Maven插件的安装及使用

    这篇文章主要介绍了Maven插件的安装及使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着...

    易兮科技3812020-09-21
  • Java教程Java中对象的序列化方式克隆详解

    Java中对象的序列化方式克隆详解

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方。这篇文章主要给大家介...

    anialy5142020-07-26
  • Java教程带你了解Java Maven的打包操作

    带你了解Java Maven的打包操作

    这篇文章主要介绍了Maven打包的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    写代码的资资12472021-12-28
  • Java教程[Spring MVC] -简单表单提交实例

    [Spring MVC] -简单表单提交实例

    本篇文章主要介绍了[Spring MVC] -简单表单提交实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。 ...

    横渡3142020-07-12
  • Java教程改变JAVA窗体属性的操作方法

    改变JAVA窗体属性的操作方法

    在本篇内容里小编给大家详细分析了关于改变JAVA窗体属性的操作方法和步骤,需要的朋友们学习下。...

    5reader11672021-06-24
  • Java教程Mybatis中 XML配置详解

    Mybatis中 XML配置详解

    这篇文章主要介绍了Mybatis中 XML配置详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    星云博客园3722020-07-21
  • Java教程介绍Java的大数类(BigDecimal)和八种舍入模式

    介绍Java的大数类(BigDecimal)和八种舍入模式

    在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。本文将介绍...

    亦枫3982020-06-04
  • Java教程javaweb配置jsp路径映射操作

    javaweb配置jsp路径映射操作

    这篇文章主要介绍了javaweb配置jsp路径映射操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    JerryDyq4032020-08-19