数据大屏后端接口开发案例

如何创建一个 maven 项目,开发后端接口,这里演示一个练习案例,从数据库获取数据,然后在网页显示。
本文章面向群体为入门级学者,文章产生于作者大学课程学习期间,参考网上其他博主教程,总结归纳所得。

1 maven 环境配置

1.1 下载好 maven 本地仓库

如图

在这里插入图片描述

1.2 配置环境

在 maven 安装路径下的 conf 文件夹中的 settings.xml 中进行相关配置,如图

在这里插入图片描述

1.3 国内镜像

为了后续下载一些依赖包速度更快,在 maven 安装路径下的 conf 文件夹中的 settings.xml 中进行相关配置,我这里使用的是阿里云镜像,如图

在这里插入图片描述

<mirrors>
	<!-- 阿里云私服 -->
	<mirror>  
		<id>alimaven</id>  
		<name>aliyun maven</name>  
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>          
	</mirror>
</mirrors>

2 IDEA 配置

配置如图

在这里插入图片描述

3 准备数据

在 MySQL 创建表 TopN,并将 HDFS 上文件导入 MySQL(数据是我的文章《MapReduce介绍及实践》中的 TopN 案例结果),相关命令不多介绍,有需要可以查看我的文章《MapReduce介绍及实践》和《Hadoop 集群部署及简要使用(Hadoop2.7)》,如图

在这里插入图片描述

查看是否导入成功,如图

在这里插入图片描述

4 创建 Maven 项目

如图

在这里插入图片描述

5 编写代码

最终项目结构如图,接下来逐个介绍:

在这里插入图片描述

5.1引入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.7</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.3</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

在这里插入图片描述

在这里插入图片描述

5.2 TopNApplication

package com.itheima;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.itheima.mapper")
@SpringBootApplication
public class TopNApplication {
    public static void main(String[] args) {
        SpringApplication.run(TopNApplication.class, args);
    }
}

在这里插入图片描述

5.3 实体类

package com.itheima.entity;

public class TopN {
    private String uid;
    private String watchnumpv;

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getWatchnumpv() {
        return watchnumpv;
    }

    public void setWatchnumpv(String watchnumpv) {
        this.watchnumpv = watchnumpv;
    }

    @Override
    public String toString() {
        return "TopN{" +
                "uid='" + uid + '\'' +
                ", watchnumpv=" + watchnumpv +
                '}';
    }
}

在这里插入图片描述

5.4 控制层

package com.itheima.controller;

//import org.springframework.web.bind.annotation.CrossOrigin;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
import org.apache.ibatis.type.TimeOnlyTypeHandler;
import org.springframework.web.bind.annotation.*;

import com.itheima.entity.TopN;
import com.itheima.service.TopNService;

import javax.annotation.Resource;
import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/topn")
public class TopNController {
    @Resource
    private TopNService topnService;
    @GetMapping("/hello")
    public String hello(){
        return "hello spring boot ";
    }
    @GetMapping("/test")
    public String test(){
        return "希望大家把项目搭建起来";
    }
    @GetMapping("/list") //get 查询
    // @PostMapping("/list")//post //put //deletet
    public List<TopN> list(){
        List<TopN> list = topnService.list();
        return list;
    }

}

在这里插入图片描述

5.5 服务层

package com.itheima.service;

import com.itheima.entity.TopN;
import com.itheima.mapper.TopNMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class TopNService {
    @Resource
    private TopNMapper topnMapper;
    public List<TopN> list(){
        List<TopN> list = topnMapper.list();
        return list;
    }
}

在这里插入图片描述

5.6 mapper层

package com.itheima.mapper;

import com.itheima.entity.TopN;
import java.util.List;

public interface TopNMapper {
    public List<TopN> list();
}

在这里插入图片描述

5.7 映射

<?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为映射的根节点-->
<!-- mapper为映射的根节点,namespace指定Dao接口的完整类名
mybatis会依据这个接口动态创建一个实现类去实现这个接口,
而这个实现类是一个Mapper对象-->
<mapper namespace="com.itheima.mapper.TopNMapper">
    <!--id ="接口中的方法名"
  parameterType="传入的参数类型"
  resultType = "返回实体类对象,使用包.类名"-->
    <select id="list"
            resultType="com.itheima.entity.TopN">
        select `uid`, `watchnumpv`
        from `TopN`
        order by watchnumpv desc
	</select>
</mapper>

在这里插入图片描述

5.8 数据库配置文件

server.port=8088
spring.datasource.url=jdbc:mysql://192.168.31.154:3306/db01?
characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true
spring.datasource.username=user01
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:/mapper/*.xml

在这里插入图片描述

6 运行

6.1 运行 TopNApplication

在这里插入图片描述

6.2 网站查看

网站地址为:localhost:8088/topn/list

在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据大屏是通过数据可视化技术,将大量的数据信息以图表、图像等形式展示在一个屏幕上,用于快速、直观地展现数据信息,帮助用户进行数据分析和决策。而农业demo是数据大屏的一种应用场景,通过数据大屏展示农业领域的各种数据指标和运行情况,辅助农业管理者和农民进行决策和生产管理。 农业作为国民经济中的基础产业,决策和管理的科学化和精细化对于提高农业供给质量和效益具有重要意义。通过数据大屏,农业demo可以将农田面积、粮食产量、农产品价格等数据指标以图表等方式展示出来,管理者和农民可以直观地了解到农业生产的情况,及时调整农作物品种和种植面积,为农产品市场供需的平衡提供决策参考。同时,数据大屏还可以与气象数据、土壤数据等进行融合分析,帮助预测农作物病虫害发生的可能性,及时采取防控措施,提高农业生产的抗风险能力。 此外,农业demo还可以将农产品品质、安全标签等信息通过数据大屏展示出来,增加消费者的了解度,帮助农产品的市场推广和销售。通过数据大屏,农业demo还可以实现农业生产与农村经济发展的有机结合,例如展示农产品产销一体化的情况,促进农村经济的多元化发展。 综上所述,数据大屏应用在农业demo中,可以提供决策参考,改善农业生产管理水平,增加农业产品市场竞争力,推动农村经济可持续发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值