毕设项目之打通前后端更新静态图数据

一·搭建Spring Boot后台程序框架

      在Spring Boot项目中,构建一个标准的MVC(Model-View-Controller)架构是非常常见的。在view模块的view目录下创建以下子模块:beanconfcontrollermapper。通常view模块是用来存放前端视图文件的,如JSP、Thymeleaf模板等,而不是后端组件。后端组件,如beanconfcontrollermapper,通常会放在主应用目录或其他逻辑模块下。

各模块功能解释

  1. bean
    • 存放Java Bean,也就是模型类(Model),用于封装数据。这些类通常用于表示数据库中的表或DTO(Data Transfer Objects)。
  2. conf
    • 存放配置类,这些类使用@Configuration注解,并可能使用@Bean注解来定义Spring容器管理的Bean。这些配置类可以用来配置Spring Boot应用的各种组件。
  3. controller
    • 存放控制器类,这些是处理HTTP请求的类。控制器类使用@RestController@Controller注解,并映射到特定的URL路径。
  4. mapper
    • 如果你的项目使用MyBatis作为ORM框架,mapper目录将存放与数据库交互的Mapper接口。这些接口定义了数据库操作的方法,并通过MyBatis映射到SQL语句。

实现:

src/  
├── main/  
│   ├── java/  
│   │   └── com/yourcompany/yourproject/  
│   │       ├── bean/             # 存放Java Bean(模型类)  
│   │       ├── conf/             # 存放配置类,如@Configuration类  
│   │       ├── controller/       # 存放控制器类,处理请求和响应  
│   │       ├── mapper/           # 存放MyBatis的Mapper接口(如果使用MyBatis)  
│   │       ├── service/          # 存放业务逻辑服务类(可选)  
│   │       └── YourApplication.java # Spring Boot启动类  
│   └── resources/  
│       ├── application.properties # 应用配置文件  
│       ├── static/               # 存放静态资源,如CSS、JS、图片等  
│       └── templates/            # 存放前端模板文件,如Thymeleaf模板  
└── test/  
    └── java/  
        └── com/yourcompany/yourproject/  
            # 存放测试类

二.编写controller用于接收前端数据请求

controller目录下创建ViewController,用户接收前端数据请求:ViewController.java

package org.zn.view.controller;  
  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
/**  
 * 用来接收前端数据请求的controller  
 */  
//=@Controller+@ResponseBody表示该类是springboot的一个controller,且返回的数据为JSON格式  
@RestController  
@RequestMapping("/view")  
public class ViewController {  
  
    @RequestMapping("/getAreaData")  
    public void getAreaData(){  
        System.out.println("接收前端发起的JSON数据请求,后续需要查询mysql将数据返回");  
    }  
  
}

三.修改前端接口调用后端Controller

目的:通过前端调用后端数据请求

1.运行ViewApplication,启动springboot

2.访问端口 ,再次刷新浏览器,再次参看
localhost:8080/view/getAreaData

3.查看控制台的日志是否有输出,再次刷新浏览器,再次参看控制台

说明接口调用成功!

4.在前端的JS文件添加接口代码

//前端调用后端接口  
    $.getJSON('http://localhost:8080/view/getAreaData', function (data) {  
        myChart.setOption({  
            series:[{  
                data: data.data  
            }]  
        })  
    });  

5.测试前端能否调用后端接口。
(1)重启动ViewApplication
(2)打开前端可视化大屏
(3)查看Spring Boot 控制台日志

说明前端调用后端成功!

四、编写Result类和ViewMapper

1,创建Result类和ViewMapper

Result.java

package org.zn.view.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 封装响应给前端数据的Javabean(@RestController)会自动将其转换为JSON,前端要求改JSON必须要有data字段
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {

    private Object data;
    private Integer code;
    private String message;

    public static Result success(Object data) {
        Result result = new Result();
        result.setCode(200);
        result.setMessage("success");
        result.setData(data);
        return result;
    }

    public static Result fail() {
        Result result = new Result();
        result.setCode(500);
        result.setMessage("fail");
        result.setData(null);
        return result;

    }

}

ViewMapper.java

package org.zn.view.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;
import java.util.Objects;

@Mapper
@Component  // idea高版本不会警告错误,可省略
public interface ViewMapper {
    @Select("select * from table")
    List<Map<String, Objects>> getAreaData();
}

五、导入测试数据,并测试前后端接口调用

1.导入测试数据,找到 mysql数据库中region_total.sql,修改

package org.zn.view.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;
import java.util.Objects;

@Mapper
@Component  // idea高版本不会警告错误,可省略
public interface ViewMapper {
    @Select("select * from region_total")
    List<Map<String, Objects>> getAreaData();
}

2.修改 ViewController 文件

package org.zn.view.controller;  
  
import org.lh.view.bean.Result;  
import org.lh.view.mapper.ViewMapper;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
import java.util.List;  
import java.util.Map;  
import java.util.Objects;  
  
/**  
 * 用来接收前端数据请求的controller  
 */  
//=@Controller+@ResponseBody表示该类是springboot的一个controller,且返回的数据为JSON格式  
@RestController  
@RequestMapping("/view")  
public class ViewController {  
  
    @Autowired  
    private ViewMapper viewMapper;  
    @RequestMapping("/getAreaData")  
    public Result getAreaData(){  
        System.out.println("接收前端发起的JSON数据请求,后续需要查询mysql将数据返回");  
        List<Map<String, Objects>> data = viewMapper.getAreaData();  
        Result result = Result.success(data);  
        return result;   
          
}  
  
}

3.启动 ViewApplication,出现报错说明代码地址书写错误

问题好像出现在我数据可连接错了,修改为正确的数据库后,正常显示。

 这里说明一下具体打通前后端导入数据的框架和过程

框架:

流程:

1.在前端index.js文件中做一个申请:

  //前端调用后端接口--人口地区分布getRegionData---region_total
    $.getJSON('http://localhost:8080/view/getRegionData', function (data) {
        console.log(data);//将接过打印出来,看看是否获取数据成功
        let arr = data.data;
        // console.log(arr);
        // console.log(arr[0].total)
        // console.log(arr[0].region)

        pieChart1.setOption({
            series:[{
                data: data.data
            }]
        });
    }); 



//前端调用后端接口--年龄结构分析getAgeData---age_info
    $.getJSON('http://localhost:8080/view/getAgeData', function (data) {
        console.log(data);
        histogramChart.setOption({
            series:[{
                data: data.data
            }]
        })
    });



 

 2.在viewController.java中写前后端的接口。

 //人口地区分布getRegionData--region_total
    @RequestMapping("/getRegionData")
    public Result getRegionData() {
        System.out.println("接收前端发起的JSON数据请求,后续需要查询mysql将数据返回");
        List<Map<String, Objects>> data = viewMapper.getRegionData();
        Result result = Result.success(data);
        return result;

    }

3.在viewMapper.java中写select语句查询需要目标表中的具体数据。

 //人口地区分布getRegionData---region_total
    @Select("select name,value from region_total")
    List<Map<String, Objects>> getRegionData();

4.最后运行viewApplication启动SpringBoot即可。

启动成功。

5.结果展示:可以看到数据被答印出来了 ,数据在可视化大屏上有正常显示。

总结:通过JDBC完成前后端的连接和数据的导入,各大屏的其他具体数据数据也用此法导入即可。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈前技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前探索之旅,让每一个网页都成为技术与艺术的完美融合!
探索全栈前技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前探索之旅,让每一个网页都成为技术与艺术的完美融合!
引用\[1\]:微人事是一个前后分离的人力资源管理系统,项目采用 SpringBoot + Vue 开发。项目打通了前后,并且提供了非常详尽的文档,从 Spring Boot 接口设计到前 Vue 的开发思路,作者全部都记录在项目的 wiki 中,是不可多得的 Java 全栈学习资料。引用\[2\]:其实前后分离本身并不难,后段提供接口,前数据展示,关键是这种思想。很多人做惯了前后不分的开发,在做前后分离的时候,很容易带进来一些前后不分时候的开发思路,结果做出来的产品不伦不类,因此松哥这里给大家整理了几个开源的前后分离项目,帮助大家快速掌握前后分离开发技术栈。美人鱼 star 数 3499项目地址: https://gitee.com/mumu-osc/NiceFish。引用\[3\]:听名字就知道这是个不错的项目,事实上确实不赖。NiceFish(美人鱼) 是一个系列项目,目标是示范前后分离的开发模式:前浏览器、移动、Electron 环境中的各种开发模式;后有两个版本:SpringBoot 版本和 SpringCloud 版本,前有 Angular 、React 以及 Electron 等版本。 针对您的问题,如果您想了解关于SpringBoot前后分离的项目,可以考虑微人事和NiceFish这两个项目。微人事是一个人力资源管理系统,采用了SpringBoot和Vue进行开发,项目提供了详尽的文档,记录了从Spring Boot接口设计到前Vue开发的思路,是一个非常有价值的Java全栈学习资料。而NiceFish是一个系列项目,旨在示范前后分离的开发模式,包括前浏览器、移动和Electron环境中的各种开发模式,后有SpringBoot版本和SpringCloud版本,前有Angular、React和Electron等版本。这些项目都是开源的,可以帮助您快速掌握前后分离开发技术栈。 #### 引用[.reference_title] - *1* *2* *3* [七个开源的 Spring Boot 前后分离项目,一定要收藏!](https://blog.csdn.net/u012702547/article/details/100973824)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值