当前位置:   article > 正文

使用Echarts+springBoot +Mybatisplus连接数据库实现简单树状图和扇形图_echarts连接数据库生成图表案例

echarts连接数据库生成图表案例

1.效果展示

1.树状图

2.扇形图 

 2.实现步骤

1.数据库结构

2.pom.xml文件 

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.5.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-web</artifactId>
  14. </dependency>
  15. <dependency>
  16. <groupId>com.mysql</groupId>
  17. <artifactId>mysql-connector-j</artifactId>
  18. <scope>runtime</scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.projectlombok</groupId>
  22. <artifactId>lombok</artifactId>
  23. <optional>true</optional>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-test</artifactId>
  28. <scope>test</scope>
  29. </dependency>
  30. </dependencies>

3.项目结构

用不了这么多,这些主要是用Mybatisplus生成的 

主要是这个我是和导入导出一起写的 所以有这么多东西,类和方法都是放在一起了,博客我却分开发了 谅解一下

4.实体类(主要用的是name属性和count属性)

 5.controller层

 

一个是返回数据的,两个跳转页面的

6.service层 

service接口 

service实现类

 7.mapper层

8.mapper.xml

 9.html页面

扇形图:

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>
  7. <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  8. </head>
  9. <body>
  10. <div id="main" style="width: 600px; height: 400px;"></div>
  11. </body>
  12. <script type="text/javascript">
  13. //初始化echarts
  14. function init(myChart){
  15. let option = {
  16. title:{
  17. text:'ECharts 数据统计'
  18. },
  19. series:[{
  20. name:'访问量',
  21. type:'pie',
  22. radius:'50%',
  23. data:[
  24. {value:0,name:'无'},
  25. ]
  26. }]
  27. };
  28. myChart.setOption(option);
  29. }
  30. //从数据库读取数据赋值给echarts
  31. function show(myChart){
  32. $.ajax({
  33. contentType : "application/json",
  34. type : "GET",
  35. url : "/tubiao1",
  36. dataType : "json",
  37. success : function(data) {
  38. //创建一个数组,
  39. let Chart=[];
  40. for(let i=0;i<data.length;i++){
  41. let obj={};
  42. obj.name=data[i].name;
  43. obj.value=data[i].count;
  44. Chart[i]=obj;
  45. }
  46. myChart.setOption({
  47. title:{
  48. text:'商品库存'
  49. },
  50. tooltip:{},
  51. series:[{
  52. name:'数量',
  53. type:'pie',
  54. // radius:'10%',
  55. data:Chart,
  56. }]
  57. });
  58. }
  59. });
  60. }
  61. //初始化echarts实例
  62. let myChart = echarts.init(document.getElementById("main"));
  63. init(myChart);
  64. show(myChart);
  65. </script>
  66. </html>

 树状图:

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>
  7. <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  8. </head>
  9. <body>
  10. <div id="main" style="height: 40em"></div>
  11. </body>
  12. <script type="text/javascript">
  13. var myChart = echarts.init(document.getElementById('main'));
  14. $.ajax({
  15. contentType: "application/json",
  16. type: "GET",
  17. url: "/tubiao1",
  18. dataType: "json",
  19. success: function (data) {
  20. let x = [];
  21. let y = [];
  22. for (let i = 0; i < data.length; i++) {
  23. //x[i]获取json的姓名,y[i]获取json的值
  24. x[i] = data[i].name;
  25. y[i] = data[i].count;
  26. }
  27. myChart.setOption({
  28. tooltip: {},
  29. label: {
  30. show: true,
  31. position:'top',
  32. },
  33. legend: {},
  34. xAxis: {
  35. data: x
  36. },
  37. yAxis: {},
  38. series: [
  39. {
  40. colorBy:'data',
  41. name: '商品库存',
  42. type: 'bar',
  43. data: y
  44. }
  45. ]
  46. });
  47. },
  48. error: function () {
  49. }
  50. })
  51. </script>
  52. </html>

都是通过ajax从后台拿数据

写html页面的时候别忘了这两个东西

是不是很简单

总结:制作不易,如果帮助到你 请点赞收藏支持一下

 如果还有纰漏请及时告知 感谢观看

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/828459
推荐阅读
相关标签
  

闽ICP备14008679号