springboot如何從數(shù)據(jù)庫(kù)獲取數(shù)據(jù),用echarts顯示(數(shù)據(jù)可視化)

上圖是實(shí)現(xiàn)的效果圖:
Echarts插件,對(duì)于圖表操控是十分方便的,但是一般生產(chǎn)環(huán)境
是把數(shù)據(jù)通過(guò)Json的格式傳到HTML頁(yè)面,
利用Ajax解析Json,所以我們來(lái)模擬一下該過(guò)程
1.下載Echarts的js文件和Jquery.js
Echarts地址:http://echarts.baidu.com/download.html
Jquery地址:https://jquery.com/download/
2.controller里面的代碼
@RequestMapping(value = "/kucun")
@ResponseBody
public List<PurchasingManagement> kucunData(Model model){
List<PurchasingManagement> purcahseManagements=purchasingManagementService.findAll();
//PurchasingManagement是我pojo中創(chuàng)建的實(shí)體
System.err.println(purcahseManagements.toString());
return purcahseManagements;
}
@GetMapping(value = "/kucundata")
public String echarts4(Model model){
System.err.println("========開始");
return "purchasing-kucun";
}3.前端代碼
http://localhost:8080/kucundata
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>圖表</title>
<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<!-- 引入 echarts.js -->
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
<!-- 為ECharts準(zhǔn)備一個(gè)具備大?。▽捀撸┑腄om -->
<div id="main" style="width: 800px;height:450px;"></div>
<script type="text/javascript">
$(document).ready(function(){
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(document.getElementById('main'));
//數(shù)據(jù)加載完之前先顯示一段簡(jiǎn)單的loading動(dòng)畫
myChart.showLoading();
var names=[]; //橫坐標(biāo)數(shù)組(實(shí)際用來(lái)盛放X軸坐標(biāo)值)
var values=[]; //縱坐標(biāo)數(shù)組(實(shí)際用來(lái)盛放Y坐標(biāo)值)
$.ajax({
type : "post",
async : true, //異步請(qǐng)求(同步請(qǐng)求將會(huì)鎖住瀏覽器,用戶其他操作必須等待請(qǐng)求完成才可以執(zhí)行)
url : "/kucun", //請(qǐng)求發(fā)送到dataActiont處
data : {},
dataType : "json", //返回?cái)?shù)據(jù)形式為json
success : function(result) {
//請(qǐng)求成功時(shí)執(zhí)行該函數(shù)內(nèi)容,result即為服務(wù)器返回的json對(duì)象
if (result) {
for(var i=0;i<result.length;i++){
names.push(result[i].nameandnum);
values.push(result[i].purchasingamount);
}
myChart.hideLoading(); //隱藏加載動(dòng)畫
myChart.setOption({ //加載數(shù)據(jù)圖表
title: {
text: '庫(kù)存數(shù)據(jù)'
},
tooltip: {},
legend: {
data:['數(shù)量']
},
xAxis: {
data: names
},
yAxis: {
type: 'value'
},
series: [{
// 根據(jù)名字對(duì)應(yīng)到相應(yīng)的系列
name: '數(shù)量',//薪資 series not exists. Legend data should be same with series name or data name.
type: 'bar',
data: values
}]
});
}
},
error : function(errorMsg) {
//請(qǐng)求失敗時(shí)執(zhí)行該函數(shù)
alert("圖表請(qǐng)求數(shù)據(jù)失敗!");
myChart.hideLoading();
}
});//end ajax
});
</script>
</body>
</html>
這是一個(gè)很簡(jiǎn)單的小例子,仔細(xì)看看,肯定可以實(shí)現(xiàn)的?。?!
持久層無(wú)論是mybatis,還是jpa都可以的。
就是遍歷數(shù)據(jù)庫(kù),然后存入數(shù)組,最后傳給前端,如此而已。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot測(cè)試類注入Bean失敗的原因及分析
SpringBoot 2.2版本前后測(cè)試類有所變化,2.2版本之后使用JUnit 5,導(dǎo)入注解@SpringBootTest和@Test來(lái)自junit.jupiter.api包;而2.2版本之前使用JUnit 4,需要額外導(dǎo)入@RunWith注解來(lái)自junit.runner包,無(wú)論哪個(gè)版本,都需確保測(cè)試類和啟動(dòng)類的包名一致2024-09-09
SpringCloud Alibaba Nacos服務(wù)注冊(cè)中心解讀
這篇文章主要介紹了SpringCloud Alibaba Nacos服務(wù)注冊(cè)中心使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2026-03-03
學(xué)習(xí)JVM之java內(nèi)存區(qū)域與異常
關(guān)于JVM內(nèi)存區(qū)域的知識(shí)對(duì)于初學(xué)者來(lái)說(shuō)其實(shí)是很重要的,了解Java內(nèi)存分配的原理,這對(duì)于以后JAVA的學(xué)習(xí)會(huì)有更深刻的理解。下面來(lái)看看詳細(xì)介紹。2016-07-07
在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼
這篇文章主要介紹了在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
java生成字母數(shù)字組合的隨機(jī)數(shù)示例 java生成隨機(jī)數(shù)
這篇文章主要介紹了java生成字母數(shù)字組合的隨機(jī)數(shù)的示例,大家參考使用吧2014-01-01
k8s部署的java服務(wù)添加idea調(diào)試參數(shù)的方法
文章介紹了如何在K8S容器中的Java服務(wù)上進(jìn)行遠(yuǎn)程調(diào)試,包括配置Deployment、Service以及本地IDEA的調(diào)試設(shè)置,感興趣的朋友跟隨小編一起看看吧2025-02-02
Java框架入門之簡(jiǎn)單介紹SpringBoot框架
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot框架展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06

