基于Java开发的数据大屏展示程序

数据大屏开发文档

一、开发目标

​ 本程序为一块不停刷新数据的大屏幕的Java后台程序。前端5分钟刷新一次,需要向后台接口请求数据展示到前段。

二、程序架构

程序框架:Spring Boot、Mybatis、

注册中心:nacos

数据库:mogdb

中间件:redis

三、具体实现

​ 整体为 MVC三层结构,为了防止程序出错,在controller层做了redis缓存。

​ 这里使用redis做缓存基于以下2点考虑

  1. redis做缓存使缓存便于管理,可以使用外部工具看到缓存的数据。

  2. 数据与程序本身独立,如果程序宕机了,数据还是在的,安全性更高一些。

下面通过一个接口来展示整个程序的实现

controller层

@RestController
@AllArgsConstructor //自动注入bean的全参数默认实现
@RequestMapping("/large")
public class ShowController {
	
	ShowService showService;

	RedisUtil redisUtil;
    
    /**
	 *  缓存名称 
	 */
	public static final String ACCUMULATED_PREMIUM_CACHE="large-screen:AccumulatedPremium";

	/**
	 * 查询数据
	 */
	@GetMapping("/AccumulatedPremium")
	public R getAccumulatedPremium(){
        //查询数据
		Map<String,Object> accumulatedPremiumVo = showService.getAccumulatedPremiumVo();
        //如果查询到数据,放入redis缓存中,然后向前段返回数据
		if (accumulatedPremiumVo!=null){
			redisUtil.set(ACCUMULATED_PREMIUM_CACHE,accumulatedPremiumVo);
			return R.data(200,accumulatedPremiumVo,"成功");
		}
        //如果程序走到这里,说明上面没有返回,从redis中查询缓存数据
		Object o = redisUtil.get(LargeScreenConstant.ACCUMULATED_PREMIUM_CACHE);
        //缓存数据不为空,返回查询到的缓存数据
		if (o!=null){
			return R.data(200,o,"数据库查询错误,获取redis缓存数据");
		}
		return R.data(500,null,"失败");
	}
}

Service层

//接口
public interface ShowService {
	Map<String,Object> getAccumulatedPremiumVo();
}

//实现
@Service
@Slf4j
public class ShowServiceImpl implements ShowService {
	@Autowired
	showMapper showMapper;

	@Override
	public Map<String,Object> getAccumulatedPremiumVo() {
		try {
			return showMapper.getTotalAccumulatedPremium();
		}catch (Exception e){
			log.error("查询异常"+e.getMessage());
		}
		return null;
	}

DAO层

​ dao层返回的直接是一个map对象,刚开始开发时,每个接口都对应出了一个pojo对象,但是后续接口频繁修改,导致pojo也不停的修改。但好在查询到的数据几乎都不需要处理,索性直接把pojo删除,sql中把每个字段都写好对应的别名,这样就不需要pojo类了。直接返回map给前端。

  • mapper类
@Mapper
public interface showMapper {
	Map<String,Object> getTotalAccumulatedPremium();
}
  • mapper.xml
    <select id="getTotalAccumulatedPremium" resultType="java.util.HashMap">
        select a.statdate,sum(allprem) allprem
        from gjsj_app.fact_view_dp_prem_statistics a
        where a.statdate = to_char(sysdate,'yyyymmdd')
        group by a.statdate ;
    </select>

​ nacos 的数据库配置,和spring的application.yml不在赘述。

​ 以上就是本程序的全部实现。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java大屏数据动态展示是指使用Java编程语言和相关技术,通过设计和开发大屏展示系统,将数据以动态的方式展示出来。 首先,Java作为一种广泛应用的编程语言,具备强大的数据处理和可视化能力,可以处理各种数据类型和数据来源。它提供了各种类库和框架,例如JavaFX、Swing等,用于创建具有良好用户体验的图形用户界面(GUI)。 大屏数据动态展示可以在各种应用场景中使用,如企业大屏数据监控、金融市场实时行情展示、交通信息监控等。通过Java编写的程序,可以实时监测和获取各种数据源的信息,并将其可视化展示大屏幕上。 Java大屏数据动态展示通常需要以下步骤: 1. 数据获取:通过编写Java程序,连接数据库、API接口或其他数据源,实时获取需要展示数据。例如,可以通过JDBC连接数据库,或通过HTTP请求获取API接口返回的数据。 2. 数据处理:对获取到的数据进行处理和计算,以满足展示需求。例如,可以对数据进行过滤、排序、聚合等操作,以便更好地展示。 3. 数据可视化:使用Java的图形类库和框架,将数据以直观且易于理解的方式展示大屏幕上。可以使用图表、图形、地图等方式,根据数据内容选择合适的可视化方式。 4. 展示更新:实时更新并展示最新的数据。通过Java编写的程序可以周期性地获取数据,并及时更新在大屏幕上的展示内容。 5. 用户交互:通过Java编写的程序,可以实现用户与大屏幕之间的交互。例如,可以提供用户操作按钮、滚动条等,以便用户对展示内容进行选择、筛选、导航等操作。 综上所述,Java大屏数据动态展示是一种通过Java编程语言和相关技术,将数据以动态的方式展示大屏幕上的方法。它可以满足各种应用场景的需求,并提供实时、直观和易于理解的数据展示效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值