目录
前言
一、PG数据库设计与实现
1、PG数据库模型设计
2、存储天气物理表结构
二、MybatisPlus中实体实现
1、MybatisPlus实体类图设计
2、MybatisPlus中相关类实现
三、PostgreSQL持久化实现
1、天气数据入库时序图
2、调用程序执行
3、数据入库结果
四、总结
前言
在当今数字化时代,数据的获取、存储与分析已成为推动众多领域发展的重要驱动力。天气数据作为一种极具价值的公共资源,广泛应用于农业、交通、旅游、能源等诸多行业。百度天气作为国内知名的天气信息服务平台,提供了丰富且实时的天气数据,若能将其有效存储并加以利用,将为相关业务决策、研究分析等提供有力支持。将百度天气数据存储至 PostgreSQL 数据库,这一过程涉及数据的获取、解析、转换以及最终的存储等多个环节。通过 MybatisPlus 框架来实现这一目标,不仅可以充分利用其强大的 ORM(对象关系映射)能力,将天气数据的实体类与数据库表结构进行高效映射,还能借助其提供的便捷操作接口,轻松完成数据的增删改查等操作。此外,MybatisPlus 的分页插件、缓存机制等特性,也能够在处理大量天气数据时,有效提升系统的性能和响应速度,确保数据存储过程的高效与稳定。

这一实践过程不仅涉及到技术层面的多种知识融合,如网络编程、JSON 数据处理、数据库操作以及框架应用等,还面临着诸如数据准确性、存储效率、系统稳定性等诸多挑战。通过对整个流程的深入研究和实践探索,我们希望能够为开发者提供一套完整、高效且可靠的解决方案,助力大家更好地利用百度天气数据,挖掘其潜在价值,同时也为类似的数据存储项目提供有益的参考和借鉴。力求以清晰、易懂的方式,带领读者逐步深入这一实践过程,共同探索数据存储与应用的无限可能。本文重点在于详细得介绍在MybatisPlus框架中如何将百度天气信息持久化到PG数据库中,首先介绍具体的PG数据库的设计与实现,然后详细介绍MybatisPlus的实体设计,最后以源代码的形式介绍如何将数据进行持久化,期待为大家提供一种良好的解决方案和参考。
一、PG数据库设计与实现
PostgreSQL 作为一种功能强大的开源关系型数据库管理系统,以其出色的性能、高度的可扩展性以及对复杂数据类型的良好支持,受到越来越多开发者的青睐。它能够高效地存储和管理大规模数据,为数据的查询、分析与挖掘提供了坚实基础。本节首先将以存储百度天气数据为背景,介绍如何进行数据库的物理表设计,为了方便大家学习,这里可以分享相关的建表语句。
1、PG数据库模型设计
在前一篇的内容中,我们详细的介绍了如何将百度天气的返回数据转换为JavaBean,GSON 框架下百度天气 JSON 数据转 JavaBean 的实战攻略。在实际应用系统查询过程中,我们除了要定义JavaBean,也需要定义用来保存天气数据的数据库模型。根据接口文档,我们可以按照业务维度设计以下数据库模型,分别用来存储天气接口返回的数据:

2、存储天气物理表结构
这里将根据上面的物理模型创建相应的天气信息表,这里将分别给出这五张表的物理结构语句。存储实时天气信息:
这里需要注意的是,在保存相应的如气温或者指数时,采用的数据库类型不是Int,这也是为了兼容可能的出现浮点数的情况,而小数位,这里初步设计成2位,大家可以根据实际需求进行调整。
天气警报信息表:
需要注意的是,在警报信息中,desc字段由于是数据库的关键字,在原始接口中返回的desc我们需要变成desc_info字段,天气指数信息表:
天气预报信息表:
小时天气预报表:
二、MybatisPlus中实体实现
MybatisPlus 则是基于 Mybatis 的增强版本,它不仅继承了 Mybatis 的灵活性和易用性,还通过一系列插件和扩展功能,极大地简化了数据库操作流程,提高了开发效率,尤其在处理复杂业务逻辑和数据持久化方面表现出色。在之前的博客中已经介绍了相关类的设计,下面将结合MybatisPlus来深入讲解这些实体的设计,分别从类图和具体实现两个方面展开。
1、MybatisPlus实体类图设计

通过分析原来的接口以及梳理对象的关系,可以整理出相关的数据关系,比如实时天气信息与预警信息、生活指数信息、逐日预报信息和逐小时预报信息均是一对多的情况。
2、MybatisPlus中相关类实现
由于篇幅有限,这里将前面的内容中剩下的几个JavaBean的代码给出,在之前的内容中已经对BdWeatherDTO.java、WeatherInfoDTO.java、WeatherIndexes.java进行了说明。预警信息JavaBean如下:
逐日天气预报JavaBean代码如下:
最后还有逐小时的天气预报信息JavaBean:
经过以上的步骤,我们就完成了全部的百度天气相关的JavaBean的定义,接下来我们将详细介绍如何实现将数据持久化到PG数据库中。
三、PostgreSQL持久化实现
在实际开发过程中,我们首先需要通过百度天气 API 获取原始的天气数据,这些数据通常以 JSON 格式返回,包含了城市、日期、温度、湿度、风力、天气状况等诸多信息。随后,利用 Java 等编程语言对这些 JSON 数据进行解析,将其转换为符合数据库存储要求的结构化数据。接着,借助 MybatisPlus 框架,将这些结构化数据映射到对应的实体类中,并通过配置 MybatisPlus 的 SQL 会话工厂、数据源以及相关映射文件,实现与 PostgreSQL 数据库的连接和数据的持久化存储。关于如何采集数据、JSON数据转换的内容在之前的博客中都有所涉及,接下来我们来讲解最后一个环节,即如何将采集和转换后的数据持久到PG数据库中。
1、天气数据入库时序图

上图详细的展示了如何在可运行程序中集成百度接口,采用时序图的方式进行了详细交互过程的阐述。整个过程一共分为11个步骤,从入口程序调用开始,首先调用百度地图的接口,然后百度地图返回JSON结果,程序解析JSON反序列化成DTO的JavaBean,然后调用天气服务类,分别实现实时天气、预警信息、生活指数信息、逐日预报信息、逐小时预报信息的PG入库,最后返回写入状态。时序图在绘制时,为了美观在Service的名称上有一定省略,希望不影响阅读。
2、调用程序执行
关于MybatisPlus中涉及的Mapper、Service及其实现类在此不再进行赘述,通用的程序都比较简单,这里将核心的天气程序入口和持久化入口以及具体的天气信息入库方法在这里跟大家分享。入口核心程序如下所示:
为了实现天气数据的入库,在保存相关的生活指数信息、预警信息、逐日/小时天气预报信息时,我们还要将实时天气主键给相关的子表赋值,这里给出天气信息的持久化详细方法:
至此基本完成了调用程序和入口程序的编写,接下来在PG数据库中看一下实际的效果。
3、数据入库结果
执行以上程序可以在控制台中看到以下输出,说明正常的向PG数据库进行数据持久化。

最后我们到数据库中查询一下是否将数据成功的写入,执行的SQL如下:

实时天气数据

逐小时天气预报
四、总结
以上就是本文的主要内容,本文重点在于详细得介绍在MybatisPlus框架中如何将百度天气信息持久化到PG数据库中,首先介绍具体的PG数据库的设计与实现,然后详细介绍MybatisPlus的实体设计,最后以源代码的形式介绍如何将数据进行持久化,期待为大家提供一种良好的解决方案和参考。这一实践过程不仅涉及到技术层面的多种知识融合,如网络编程、JSON 数据处理、数据库操作以及框架应用等,还面临着诸如数据准确性、存储效率、系统稳定性等诸多挑战。通过对整个流程的深入研究和实践探索,我们希望能够为开发者提供一套完整、高效且可靠的解决方案,助力大家更好地利用百度天气数据,挖掘其潜在价值,同时也为类似的数据存储项目提供有益的参考和借鉴。行文仓促,定有许多的不足之处,欢迎各位朋友在评论区批评指正,不胜感激。
4505

被折叠的 条评论
为什么被折叠?



