欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot+thymeleaf+Echarts+Mysql 實(shí)現(xiàn)數(shù)據(jù)可視化讀取的示例

 更新時(shí)間:2022年04月18日 11:46:14   作者:*豬耳朵*  
本文主要介紹了SpringBoot+thymeleaf+Echarts+Mysql 實(shí)現(xiàn)數(shù)據(jù)可視化讀取的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

通過(guò)從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)轉(zhuǎn)為JSON數(shù)據(jù),返回前端界面實(shí)現(xiàn)數(shù)據(jù)可視化。

數(shù)據(jù)可視化測(cè)試

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

實(shí)現(xiàn)過(guò)程

1. pom.xml

pom.xml引入(僅為本文示例需要,其他依賴自行導(dǎo)入)

<!--Thymeleaf整合security-->
<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity5</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>
 <!--導(dǎo)入lombok小辣椒驅(qū)動(dòng)依賴,用來(lái)生成get/set方法依賴-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <!--<optional>true</optional>-->
    <version>1.18.12</version>
    <scope>provided</scope><!--自動(dòng)生成有參無(wú)參構(gòu)造-->
</dependency>
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.4</version>
 </dependency>

2. 后端程序示例

1. Controller層

package com.dvms.controller;

/*
 *文件名: DataviewController
 *創(chuàng)建者: CJW
 *創(chuàng)建時(shí)間: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";
    }
}

請(qǐng)?zhí)砑訄D片描述

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
 *創(chuàng)建者: CJW
 *創(chuàng)建時(shí)間:2022/1/15 10:54
 *描述: TODO
 */
public interface ParamoduleService {

    ArrayList<String> finddata();

    ArrayList<Integer> finddatanum();
}

請(qǐng)?zhí)砑訄D片描述

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
 *創(chuàng)建者: CJW
 *創(chuàng)建時(shí)間:2022/1/15 10:55
 *描述: TODO
 */
@Service
public class ParamoduleServiceImpl implements ParamoduleService {

    @Autowired
    private ParamoduleDao paramoduleDao;
    //查出數(shù)據(jù)名
    @Override
    public ArrayList<String> finddata(){ return paramoduleDao.finddata(); }
    //查出數(shù)據(jù)數(shù)量
    @Override
    public ArrayList<Integer> finddatanum(){ return paramoduleDao.finddatanum(); }
}

請(qǐng)?zhí)砑訄D片描述

4. entity層

package com.dvms.entity;

/*
 *文件名: Data
 *創(chuàng)建者: CJW
 *創(chuàng)建時(shí)間: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) //鏈?zhǔn)秸{(diào)用

public class Data {

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

}

請(qǐng)?zhí)砑訄D片描述

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
 *創(chuàng)建者: CJW
 *創(chuàng)建時(shí)間:2022/1/15 10:52
 *描述: TODO
 */

@Repository
public interface ParamoduleDao {

     ArrayList<String> finddata();

     ArrayList<Integer> finddatanum();

}

請(qǐng)?zhí)砑訄D片描述

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">

    <!--查詢數(shù)據(jù)名-->
    <select id="finddata" resultType="String">
        select dataname from data
    </select>

    <!--查詢數(shù)據(jù)數(shù)量-->
    <select id="finddatanum" resultType="Integer">
        select datanum from data
    </select>
    
</mapper>

請(qǐng)?zhí)砑訄D片描述

7. 數(shù)據(jù)庫(kù)data表

請(qǐng)?zhí)砑訄D片描述

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 獲取后端參數(shù)方式

JSON.parse(dataname)  // JSON接收數(shù)據(jù)
		<div class="main">
			<!-- MAIN CONTENT -->
			<div class="main-content">
				<div class="container-fluid">
					<h3 class="page-title">數(shù)據(jù)可視化測(cè)試示例</h3>
					<div class="row">
						<div class="col-md-12">
							<div class="panel">
								<div class="panel-heading">
									<h3 class="panel-title">讀取數(shù)據(jù)庫(kù)數(shù)據(jù)可視化示例</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準(zhǔn)備一個(gè)具備大?。▽捀撸┑腄om -->
								<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}]];


                                        // 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
                                        var myChart = echarts.init(document.getElementById('main'));
                                        // 指定圖表的配置項(xiàng)和數(shù)據(jù)
                                        var option = {
                                            title: {
                                                text: '讀取數(shù)據(jù)庫(kù)數(shù)據(jù)可視化示例'
                                            },
                                            tooltip: {},
                                            legend: {
                                                data: ['數(shù)量']
                                            },
                                            xAxis: {
                                                data: JSON.parse(dataname)
                                            },
                                            yAxis: {},
                                            color:['#62d1de'],//在這里設(shè)置colorList,是一個(gè)數(shù)組,圖片顏色會(huì)按順序選取
                                            series: [
                                                {
                                                    name: '數(shù)量',
                                                    type: 'bar',
                                                    data: JSON.parse(datanum)
                                                }
                                            ]
                                        };


                                        // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
                                        myChart.setOption(option);
                                    </script>

                                </div>

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

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


                                        // 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
                                        var myChart1 = echarts.init(document.getElementById('main1'));
                                        option = {
                                            title: {
                                                text: '某站點(diǎn)用戶訪問(wèn)來(lái)源',
                                                subtext: '純屬虛構(gòu)',
                                                left: 'center'
                                            },
                                            tooltip: {
                                                trigger: 'item',
                                                formatter: '{a} <br/> : {c} (vvxyksv9kd%)'
                                            },
                                            legend: {
                                                orient: 'vertical',
                                                left: 'left',
                                                data: ['直接訪問(wèn)', '郵件營(yíng)銷', '聯(lián)盟廣告', '視頻廣告', '搜索引擎']
                                            },
                                            color:['#62d1de','#54d6b6','#a6db69','#ffd454','#ffa361','#d1d1d1'],//在這里設(shè)置colorList,是一個(gè)數(shù)組,圖片顏色會(huì)按順序選取
                                            series: [
                                                {
                                                    name: '訪問(wèn)來(lái)源',
                                                    type: 'pie',
                                                    radius: '55%',
                                                    center: ['50%', '60%'],
                                                    data: [
                                                        {value: 335, name: '直接訪問(wèn)'},
                                                        {value: 310, name: '郵件營(yíng)銷'},
                                                        {value: 234, name: '聯(lián)盟廣告'},
                                                        {value: 135, name: '視頻廣告'},
                                                        {value: 1548, name: '搜索引擎'}
                                                    ],
                                                    emphasis: {
                                                        itemStyle: {
                                                            shadowBlur: 10,
                                                            shadowOffsetX: 0,
                                                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                                                        }
                                                    }
                                                }
                                            ]
                                        };

                                        // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
                                        myChart1.setOption(option);
                                    </script>
                                </div>
								</div>
                            </div>
							</div>
						</div>
								</div>
							</div>
						</div>
			<!-- END MAIN CONTENT -->
		</div>

到此這篇關(guān)于SpringBoot+thymeleaf+Echarts+Mysql 實(shí)現(xiàn)數(shù)據(jù)可視化讀取的示例的文章就介紹到這了,更多相關(guān)SpringBoot可視化讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot Service和Dao的編寫詳解

    SpringBoot Service和Dao的編寫詳解

    這篇文章主要介紹了SpringBoot Service和Dao的編寫詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 那些年用httpclient時(shí)踩過(guò)的一些坑

    那些年用httpclient時(shí)踩過(guò)的一些坑

    這篇文章主要給大家介紹了關(guān)于那些年用httpclient時(shí)踩過(guò)的一些坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用httpclient具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java線程安全中的單例模式

    Java線程安全中的單例模式

    這篇文章主要介紹了Java線程安全中的單例模式,需要的朋友可以參考下
    2015-02-02
  • 詳解Java Project項(xiàng)目打包成jar,并生成exe文件

    詳解Java Project項(xiàng)目打包成jar,并生成exe文件

    本篇文章主要介紹了Java Project項(xiàng)目打包成jar,并生成exe文件,非常具有實(shí)用價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Struts2攔截器Interceptor的原理與配置實(shí)例詳解

    Struts2攔截器Interceptor的原理與配置實(shí)例詳解

    攔截器是一種AOP(面向切面編程)思想的編程方式.它提供一種機(jī)制是開(kāi)發(fā)者能夠把相對(duì)獨(dú)立的代碼抽離出來(lái),配置到Action前后執(zhí)行。下面這篇文章主要給大家介紹了關(guān)于Struts2攔截器Interceptor的原理與配置的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • Java線程阻塞工具LockSupport用法詳解

    Java線程阻塞工具LockSupport用法詳解

    Java中的LockSupport是一個(gè)用于線程同步的工具類,它提供了一種基于線程的阻塞和喚醒機(jī)制,LockSupport可以讓線程在特定條件下阻塞掛起,等待其他線程發(fā)送信號(hào)來(lái)喚醒它,本文將通過(guò)一個(gè)小案例給大家介紹一下LockSupport怎么用,讓你永遠(yuǎn)記住它
    2023-08-08
  • pageHelper一對(duì)多分頁(yè)解決方案示例

    pageHelper一對(duì)多分頁(yè)解決方案示例

    這篇文章主要為大家介紹了pageHelper一對(duì)多分頁(yè)解決方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Jackson多態(tài)序列化圖文詳解

    Jackson多態(tài)序列化圖文詳解

    jackson允許配置多態(tài)類型處理,當(dāng)進(jìn)行反序列話時(shí),JSON數(shù)據(jù)匹配的對(duì)象可能有多個(gè)子類型,為了正確的讀取對(duì)象的類型,我們需要添加一些類型信息,下面這篇文章主要給大家介紹了關(guān)于Jackson多態(tài)序列化的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • SpringBoot熱部署Springloaded實(shí)現(xiàn)過(guò)程解析

    SpringBoot熱部署Springloaded實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了SpringBoot熱部署Springloaded實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 淺入淺出的講解Spring循環(huán)依賴問(wèn)題

    淺入淺出的講解Spring循環(huán)依賴問(wèn)題

    循環(huán)依賴其實(shí)就是循環(huán)引用,也就是兩個(gè)或則兩個(gè)以上的bean互相持有對(duì)方,最終形成閉環(huán),下面這篇文章主要給大家介紹了關(guān)于Spring循環(huán)依賴問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10

最新評(píng)論