1.mysql中导入数据
1.创建tag_dat数据库;
2.创建jobs表:
use tags_dat;
CREATE TABLE `jobs` (
`id` int(11) NOT NULL,
`job` varchar(50) NOT NULL,
`num` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `jobs` (`id`, `job`, `num`) VALUES
(1, '学生', 162),
(2, '公务员', 145),
(3, '军人', 202),
(4, '警察', 143),
(5, '教师', 130),
(6, '白领', 160);
3. 创建sexs表:
CREATE TABLE `sexs` (
`sex` varchar(50) NOT NULL,
`num` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `sexs` (`sex`, `num`) VALUES
( '男', 481),
( '女', 469);
4.创建payments表:
CREATE TABLE `payments` (
`payment` varchar(50) NOT NULL,
`num` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `payments` (`payment`, `num`) VALUES
('支付宝', 93631),
('微信', 33),
('货到付款',14025);
5.创建politicals表:
CREATE TABLE `politicals` (
`political` varchar(50) NOT NULL,
`num` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `politicals` (`political`, `num`) VALUES
('党员', 322),
('群众', 323),
('无党人士',305);
2.创建springboot项目
1.new project
因为那个Default的网址是下载springboot不了,于是换个网址https://start.springboot.io,即可成功创建项目!
2.next,勾选Web中的Spring Web,与Template中的Thymeleaf
3.Finish
3.导入相关依赖
1.在pom.xml的<dependencies>.....</dependencies>模块内加入以下依赖
<!--集成web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--渲染html文件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--集成mysql数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--lombok注解简化代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.在application.properties中编写添加MySQL的端口,用户名密码跟url:
查看端口:netstat -ano
杀掉端口:taskkill /pid 10492 -f
解决端口占用:CMD查杀端口详细教程_黄文孝同学的博客-CSDN博客_杀端口
server.port=8080
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tags_dat?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=你的数据库密码
3.添加echart.min.js(这里没有网址,去网上搜一下下载即可)
4.编写代码
代码结构
1.编写Bean层
jobsBean
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class jobsBean {
private Long id;
private String job;
private Integer num;
}
paymentsBean
package com.example.demo.Bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class paymentsBean {
private String payment;
private Integer num;
}
politicalsBean
package com.example.demo.Bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class politicalsBean {
private String political;
private Integer num;
}
sexsBean
package com.example.demo.Bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class sexsBean {
private String sex;
private Integer num;
}
2.编写Dao层
jobsDao
import com.example.demo.Bean.jobsBean;
import java.util.List;
public interface jobsDao {
List<jobsBean> showJsonData();
}
jobsDaoImpl
import com.example.demo.Bean.jobsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("jobsDaoImpl")
public class jobsDaoImpl implements jobsDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<jobsBean> showJsonData() {
String sql = "select * from jobs";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(jobsBean.class));
}
}
paymentsDao
package com.example.demo.Dao;
import com.example.demo.Bean.paymentsBean;
import java.util.List;
public interface paymentsDao {
List<paymentsBean> showJsonData();
}
paymentsDaoImpl
package com.example.demo.Dao;
import com.example.demo.Bean.paymentsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("paymentsDaoImpl")
public class paymentsDaoImpl implements paymentsDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<paymentsBean> showJsonData() {
String sql = "select * from payments";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(paymentsBean.class));
}
}
politicalsDao
package com.example.demo.Dao;
import com.example.demo.Bean.politicalsBean;
import java.util.List;
public interface politicalsDao {
List<politicalsBean> showJsonData();
}
politicalsDaoImpl
package com.example.demo.Dao;
import com.example.demo.Bean.politicalsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("politicalsDaoImpl")
public class politicalsDaoImpl implements politicalsDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<politicalsBean> showJsonData() {
String sql = "select * from politicals";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(politicalsBean.class));
}
}
sexsDao
package com.example.demo.Dao;
import com.example.demo.Bean.sexsBean;
import java.util.List;
public interface sexsDao {
List<sexsBean> showJsonData();
}
sexsDaoImpl
package com.example.demo.Dao;
import com.example.demo.Bean.sexsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("sexsDaoImpl")
public class sexsDaoImpl implements sexsDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<sexsBean> showJsonData() {
String sql = "select * from sexs";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(sexsBean.class));
}
}
3.编写MysqlEchartsController
package com.example.demo;
import com.example.demo.Bean.jobsBean;
import com.example.demo.Bean.paymentsBean;
import com.example.demo.Bean.politicalsBean;
import com.example.demo.Bean.sexsBean;
import com.example.demo.Dao.jobsDaoImpl;
import com.example.demo.Dao.paymentsDaoImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class MysqlEchartsController {
@Autowired
private jobsDaoImpl jobsDaoImpl;
@RequestMapping(value = "jobs/list",method = RequestMethod.GET)
public List<jobsBean> getJsonDate(){
List<jobsBean> jobsBeans = jobsDaoImpl.showJsonData();
return jobsBeans;
}
@Autowired
private paymentsDaoImpl paymentsDaoImpl;
@RequestMapping(value = "payments/list",method = RequestMethod.GET)
public List<paymentsBean> getJsonDate1(){
List<paymentsBean> paymentsBeans = paymentsDaoImpl.showJsonData();
return paymentsBeans;
}
@Autowired
private com.example.demo.Dao.politicalsDaoImpl politicalsDaoImpl;
@RequestMapping(value = "politicals/list",method = RequestMethod.GET)
public List<politicalsBean> getJsonDate2(){
List<politicalsBean> politicalsBeans = politicalsDaoImpl.showJsonData();
return politicalsBeans;
}
@Autowired
private com.example.demo.Dao.sexsDaoImpl sexsDaoImpl;
@RequestMapping(value = "sexs/list",method = RequestMethod.GET)
public List<sexsBean> getJsonDate3(){
List<sexsBean> sexsBeans = sexsDaoImpl.showJsonData();
return sexsBeans;
}
}
4.编写Application(自带,不用编写)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
5.在SpringBoot整合Echarts里的Controller类改下html文件名
编写EchartsTest
package com.example.demo.Ecahrts;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class EchartsTest {
@RequestMapping(value = "/",method = RequestMethod.GET)
public ModelAndView FirtstEchartsTest(){
//test为在为你的html文件名字,SpringBoot会自动找到这个html文件
return new ModelAndView("MysqlEcharts");
}
@RequestMapping(value = "/jobs",method = RequestMethod.GET)
public ModelAndView jobsEchartsTest(){
//test为在为你的html文件名字,SpringBoot会自动找到这个html文件
return new ModelAndView("jobsEcharts");
}
@RequestMapping(value = "/politicals",method = RequestMethod.GET)
public ModelAndView politicalsEchartsTest(){
//test为在为你的html文件名字,SpringBoot会自动找到这个html文件
return new ModelAndView("politicalsEcharts");
}
@RequestMapping(value = "sexs",method = RequestMethod.GET)
public ModelAndView sexsEchartsTest(){
//test为在为你的html文件名字,SpringBoot会自动找到这个html文件
return new ModelAndView("sexsEcharts");
}
@RequestMapping(value = "/payments",method = RequestMethod.GET)
public ModelAndView paymentsEchartsTest(){
//test为在为你的html文件名字,SpringBoot会自动找到这个html文件
return new ModelAndView("paymentsEcharts");
}
}
5.前端网页,可视化
在templates中创建MysqlECharts.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>用户基本信息</title>
<script src="echarts.min.js"></script>
</head>
<body>
<div id="container" style="width:1500px;height:100px">
<div id="header" style="background-color:#FFA500;">
<h1 style="margin-bottom:0;text-align:center;">用户基本信息</h1>
</div>
<div id="menu" style="background-color:lightgoldenrodyellow;height:650px;width:1500px;float:left;">
<div style=" text-align:center;">菜单</div>
<div style=" text-align:center;"><a href="http://localhost:8080/sexs">性别</a>
<div style=" text-align:center;"><a href="http://localhost:8080/jobs">职业</a>
<div style=" text-align:center;"><a href="http://localhost:8080/payments">支付方式</a>
<div style=" text-align:center;"><a href="http://localhost:8080/politicals">政治面貌</a>
</div>
<script>
</script>
</body>
</html>
创建jobEcharts.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户职业</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.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: '用户职业'
},
tooltip: {},
legend: {
data:['职业']
},
xAxis: {
data: ["学生","公务员","军人","警察","教师","白领"]
},
yAxis: {},
series: [{
name: '人数',
type: 'bar',
data: [5, 20, 30, 10, 10, 20]
}]
};
// 定义x、y轴数据数组
var jobs=[];
var nums=[];
//请求后台数据
$.ajax({
type: "get",
url: "/jobs/list",
contentType: "application/json",
success: function(res){
console.log("=====res: =======")
console.log(res);
for (var i = 0; i < res.length ; i++) {
jobs.push(res[i].job);
nums.push(res[i].num);
}
myChart.setOption({
xAxis: {
data: jobs
},
series: [{
// 根据名字对应到相应的系列
name: '人数',
data: nums
}]
});
}
});
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<button><a href="http://localhost:8080">菜单</a></button>
<button><a href="http://localhost:8080/sexs">性别</a></button>
<button><a href="http://localhost:8080/jobs">职业</a></button>
<button><a href="http://localhost:8080/politicals">群众面貌</a></button>
<button><a href="http://localhost:8080/payments">支付方式</a></button>
</body>
</html>
创建paymentsEcharts.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户支付方式</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.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: '支付方式'
},
tooltip: {},
legend: {
data:['支付方式']
},
xAxis: {
data: ["支付宝","微信","货到付款"]
},
yAxis: {},
series: [{
name: '人数',
type: 'bar',
data: [10, 20, 30]
}]
};
// 定义x、y轴数据数组
var paymemts=[];
var nums=[];
//请求后台数据
$.ajax({
type: "get",
url: "/payments/list",
contentType: "application/json",
success: function(res){
console.log("=====res: =======")
console.log(res);
for (var i = 0; i < res.length ; i++) {
paymemts.push(res[i].paymemt);
nums.push(res[i].num);
}
myChart.setOption({
xAxis: {
data: paymemts
},
series: [{
// 根据名字对应到相应的系列
name: '人数',
data: nums
}]
});
}
});
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<button><a href="http://localhost:8080">菜单</a></button>
<button><a href="http://localhost:8080/sexs">性别</a></button>
<button><a href="http://localhost:8080/jobs">职业</a></button>
<button><a href="http://localhost:8080/politicals">群众面貌</a></button>
<button><a href="http://localhost:8080/payments">支付方式</a></button>
</body>
</html>
创建politicalsEcharts.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户政治面貌</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.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: '政治面貌'
},
tooltip: {},
legend: {
data:['政治面貌']
},
xAxis: {
data: ["党员","群众","无党人士"]
},
yAxis: {},
series: [{
name: '人数',
type: 'bar',
data: [10, 20, 30]
}]
};
// 定义x、y轴数据数组
var politicals=[];
var nums=[];
//请求后台数据
$.ajax({
type: "get",
url: "/politicals/list",
contentType: "application/json",
success: function(res){
console.log("=====res: =======")
console.log(res);
for (var i = 0; i < res.length ; i++) {
politicals.push(res[i].political);
nums.push(res[i].num);
}
myChart.setOption({
xAxis: {
data: politicals
},
series: [{
// 根据名字对应到相应的系列
name: '人数',
data: nums
}]
});
}
});
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<button><a href="http://localhost:8080">菜单</a></button>
<button><a href="http://localhost:8080/sexs">性别</a></button>
<button><a href="http://localhost:8080/jobs">职业</a></button>
<button><a href="http://localhost:8080/politicals">群众面貌</a></button>
<button><a href="http://localhost:8080/payments">支付方式</a></button>
</body>
</html>
创建sexsEcharts.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户性别</title>
<!-- 引入 echarts.js -->
<script src="echarts.min.js"></script>
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.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: '性别'
},
tooltip: {},
legend: {
data:['性别']
},
xAxis: {
data: ["男","女"]
},
yAxis: {},
series: [{
name: '人数',
type: 'bar',
data: [10, 10]
}]
};
// 定义x、y轴数据数组
var sexs=[];
var nums=[];
//请求后台数据
$.ajax({
type: "get",
url: "/sexs/list",
contentType: "application/json",
success: function(res){
console.log("=====res: =======")
console.log(res);
for (var i = 0; i < res.length ; i++) {
sexs.push(res[i].sex);
nums.push(res[i].num);
}
myChart.setOption({
xAxis: {
data: sexs
},
series: [{
// 根据名字对应到相应的系列
name: '人数',
data: nums
}]
});
}
});
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<button><a href="http://localhost:8080">菜单</a></button>
<button><a href="http://localhost:8080/sexs">性别</a></button>
<button><a href="http://localhost:8080/jobs">职业</a></button>
<button><a href="http://localhost:8080/politicals">群众面貌</a></button>
<button><a href="http://localhost:8080/payments">支付方式</a></button>
</body>
</html>
6.运行
在Application中运行,出现以下图便是成功
首页
性别
职业
群众面貌
支付方式
完成!!!!!
参考博客:SpringBoot框架之SpringBoot+MySQL+Echarts使用案例入门_guihua55的博客-CSDN博客_echarts mysql springboot