java+echarts+mysql数据可视化实战1
2021/4/8 2:08:56
本文主要是介绍java+echarts+mysql数据可视化实战1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、实验环境:
1)IDEA、SpringBoot、Echarts
2)MyBatis plus、mybatis-plus-generator、velocity
3)thymeleaf、spring-web
4)mybatis、mysql、lombok
2、项目目录:
1)controller->ProductsController.java
2)entity->Products.java
3)mapper->ProductsMapper.java
->xml->ProductsMapper.xml
4)service->ProductsService.java
->impl->ProductsServiceImpl.java
5)vo->BarVO/PieVO/ProductsBarVO
BarVO.java
@Data public class BarVO { //柱状图 private List<String> names; private List<Integer> values; }
PieVO
@Data @AllArgsConstructor //带参构造 public class PieVO { //饼图格式:{value: 335, name: '直接访问'} private Integer value; private String name; }
ProductsBarVO
@Data public class ProductsBarVO { //柱状图 //变量名一定要和数据库中的查询名字一致 private String name; private Integer count; }
6)test->mapper->ProductsMapperTest.java
7)test->service->ProductsServiceTest.java
3、测试流程:
1)ProductsBarVO->ProductsMapper->ProductsMapperTest
2)ProductsService->ProductsServiceImpl->ProductsServiceTest
3)ProductsController->Echarts
4、测试代码:
1)ProductsBarVO.java
package com.task.vo; import lombok.Data; @Data public class ProductsBarVO { //柱状图 //变量名一定要和数据库中的查询名字一致 private String name; private Integer count; }
2)ProductsMapper.java
package com.task.mapper; import com.task.entity.Products; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.task.vo.ProductsBarVO; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface ProductsMapper extends BaseMapper<Products> { //柱状图 //商品表-分组(商品种类、商品种类数量) //自定义语句 @Select("SELECT name , sum(pnum) count FROM estore.products GROUP BY name") public List<ProductsBarVO> findAllProductBarVO(); @Select("SELECT color name, sum(pnum) count FROM estore.products GROUP BY color") public List<ProductsBarVO> findColorNumBarVO(); }
3)ProductsMapperTest.java
package com.task.mapper; import com.task.vo.ProductsBarVO; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class ProductsMapperTest { @Autowired private ProductsMapper mapper; //测试横向的findAllProductBarVO @Test void test(){ //name、 count都在集合list中 List<ProductsBarVO> list = mapper.findAllProductBarVO(); int i = 0; } @Test void test2(){ //color、 count都在集合list中 List<ProductsBarVO> list = mapper.findColorNumBarVO(); int i = 0; } }
4)ProductsService.java
package com.task.service; import com.task.entity.Products; import com.baomidou.mybatisplus.extension.service.IService; import com.task.vo.BarVO; import com.task.vo.PieVO; import com.task.vo.ProductsBarVO; import java.util.List; public interface ProductsService extends IService<Products> { //柱状图 //商品表-分组(商品种类、商品种类数量) //把productsBarVO中的数据传到BarVO public BarVO getBarVO(); //PieVO返回一个集合 public List<PieVO> getPieVO(); //把productsBarVO中的数据传到BarVO public BarVO getBarVO(List<ProductsBarVO> list); }
5)ProductsServiceImpl.java
package com.task.service.impl; import com.task.entity.Products; import com.task.mapper.ProductsMapper; import com.task.service.ProductsService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.task.vo.BarVO; import com.task.vo.PieVO; import com.task.vo.ProductsBarVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service public class ProductsServiceImpl extends ServiceImpl<ProductsMapper, Products> implements ProductsService { @Autowired private ProductsMapper productsMapper; //柱状图 //商品表-分组(商品种类、商品种类数量) //业务层封装,即把productBarVO中的集合拆分封装成BarVO两个子对象 @Override public BarVO getBarVO() { //测试过没问题的 List<ProductsBarVO> list = productsMapper.findAllProductBarVO(); //定义两个集合 List<String> names = new ArrayList<>(); List<Integer> values = new ArrayList<>(); //for循环遍历给数组 for(ProductsBarVO productsBarVO : list){ names.add(productsBarVO.getName()); values.add(productsBarVO.getCount()); } //定义个BarVo BarVO barVO = new BarVO(); barVO.setNames(names); barVO.setValues(values); return barVO; //接着来个测试 } //PieVO返回一个集合,实现ProductsService中的getPieVO方法 @Override public List<PieVO> getPieVO() { //测试过没问题的 List<ProductsBarVO> list = productsMapper.findAllProductBarVO(); List<PieVO> pieVOList = list.stream() .map(e -> new PieVO( e.getCount(), e.getName() )).collect(Collectors.toList()); return pieVOList; } @Override public BarVO getBarVO(List<ProductsBarVO> list) { //测试过没问题的 // List<ProductsBarVO> list = productsMapper.findAllProductBarVO(); //定义两个集合 List<String> names = new ArrayList<>(); List<Integer> values = new ArrayList<>(); //for循环遍历给数组 for(ProductsBarVO productsBarVO : list){ names.add(productsBarVO.getName()); values.add(productsBarVO.getCount()); } //定义个BarVo BarVO barVO = new BarVO(); barVO.setNames(names); barVO.setValues(values); return barVO; //接着来个测试 } }
6)ProductsServiceTest.java
package com.task.service; import com.task.mapper.ProductsMapper; import com.task.vo.BarVO; import com.task.vo.ProductsBarVO; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class ProductsServiceTest { @Autowired private ProductsService service; @Autowired private ProductsMapper mapper; //测试getBarVO() @Test void getBarVO() { BarVO barVO = service.getBarVO(); int i = 0; } @Test void getBarVO2() { List<ProductsBarVO> list = mapper.findColorNumBarVO(); BarVO barVO = service.getBarVO(list); int i = 0; } }
7)productsController.java
package com.task.controller; import com.task.mapper.ProductsMapper; import com.task.service.ProductsService; import com.task.vo.BarVO; import com.task.vo.PieVO; import com.task.vo.ProductsBarVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller public class ProductsController { @Autowired private ProductsService productsService; @Autowired private ProductsMapper mapper; @RequestMapping("/barVO") @ResponseBody //返回的是数据所以加上ResponseBody public BarVO getBarVO(){ //把数据传到前台 return productsService.getBarVO(); } @RequestMapping("/pieVO") @ResponseBody //返回的是数据所以加上ResponseBody public List<PieVO> getPieVO(){ //把数据传到前台 return productsService.getPieVO(); } @RequestMapping("/barVO2") @ResponseBody //返回的是数据所以加上ResponseBody public BarVO getBarVO2(){ //把数据传到前台 List<ProductsBarVO> list = mapper.findColorNumBarVO(); return productsService.getBarVO(list); } }
8)可视化展示
这篇关于java+echarts+mysql数据可视化实战1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南